Imagem de fundo

Sobre a alocação dinâmica em C, se um programador executar p = malloc(10 * sizeof(int))...

Sobre a alocação dinâmica em C, se um programador executar p = malloc(10 * sizeof(int)) e, logo após, sem liberar a memória, executar p = malloc(5 * sizeof(int)), o que ocorre tecnicamente no sistema?


A

O primeiro bloco é automaticamente liberado pelo SO (Garbage Collection).


B

Ocorre um vazamento de memória (Memory Leak), pois o endereço do primeiro bloco foi perdido.


C

O segundo malloc falhará, pois o ponteiro p já está ocupado.


D

O tamanho do bloco original é redimensionado para 5 inteiros.


E

O ponteiro p passará a apontar para uma área de memória contendo os dois blocos.