SóProvas


ID
1820635
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Programação
Assuntos

Linguagens de programação imperativas normalmente utilizam o conceito de tipos de dados na declaração de variáveis. Com isso, as linguagens criam um mecanismo que possibilita o armazenamento e a manipulação de dados durante a execução de programas. Considerando esse assunto, julgue o item subsecutivo.

Ao declarar uma variável a partir de um tipo de dado estruturado heterogêneo, a quantidade de memória alocada pode ser insuficiente para armazenar todos os dados dessa variável.


Alternativas
Comentários
  • Verdadeiro!

  • Obrigado The student, muito esclarecedor o seu comentário!

  • Não consegui encontrar justificativa para esse gabarito, uma estrutura heterogênea seria um registro, struct em C por exemplo, que é formado por variáveis primitivas, mas em tempo de compilação já se sabe a quantidade de memória a ser alocada, logo ao se definir uma variável como struct, também já saberia-se em tempo de compilação a quantidade de memória alocada.

    Se alguém souber justificar o gabarito ....

       struct Produto {

          int codigo;

          float preco;

       };

       struct Dt_dma {

          int dia, mes, ano;

       };

    Quando se declara a struct, um tipo de dado novo é criado.

     Deve-se declarar a variável do tipo struct:

        struct Produto prod;  // prod é a variável do tipo struct Produto

       struct Dt_dma dt_nasc; // dt_nasc é uma variável do tipo struct Dt_dma

  • @Eduardo, a quantidade de memória pode ser insuficiente caso ela seja alocada dinamicamente (malloc).

    Como a struct pode ser grande e conter, inclusive, outras structs dentro dela, às vezes é melhor usar o malloc para poder desalocar depois do uso, o que trás esse risco de não ter memória no momento da alocação.

    .

    No entanto, a questão deveria ter citado o fator dinâmico para não dar margem a diferentes interpretações