Ed
há 2 semanas
Vamos analisar o trecho de código apresentado: 1. Alocação inicial: `int *p = malloc(3 * sizeof(int));` - Aqui, estamos alocando memória para 3 inteiros. Portanto, o tamanho inicial do bloco de memória alocado para `p` é `3 * sizeof(int)`. 2. Reallocação: `p = realloc(p, 5 * sizeof(int));` - A função `realloc` é chamada para redimensionar o bloco de memória para 5 inteiros. O tamanho do bloco de memória alocado para `p` após essa chamada será `5 * sizeof(int)`. Agora, vamos analisar as alternativas: A) 3 * sizeof(int) - Este é o tamanho antes da chamada de `realloc`, então está incorreto. B) 4 * sizeof(int) - Este não é o tamanho solicitado na chamada de `realloc`, então está incorreto. C) 5 * sizeof(int) - Este é o tamanho correto após a chamada de `realloc`. D) 6 * sizeof(int) - Este não é o tamanho solicitado na chamada de `realloc`, então está incorreto. E) 8 * sizeof(int) - Este não é o tamanho solicitado na chamada de `realloc`, então está incorreto. Portanto, a alternativa correta é: C) 5 * sizeof(int).