Duvida alocamento Dinâmico

4 - Como podemos aumentar o tamanho do ponteiro declarado no exercício anterior, para 40 sem perder os 20 valores que já existe neste ponteiro ?

 int *aponta
 aponta = (int*) malloc (20 * sizeof(int));
 
int *aux = aponta;
aponta = (int*) malloc (40 * sizeof(int));

for (x=0; x<20; x++){
  aponta[x] = aux[x];
}

Estou com duvida no exercício 5 e 6 alguém poderia dar um força

5 - Como podemos reduzir o tamanho do ponteiro declarado no exercício anterior, para 5 sem perder os 40 valores que já existe neste ponteiro ?
R:

6 - Como podemos reduzir o tamanho do ponteiro declarado no exercício 4, para 5 sem perder os 2 valores (que estão na primeiras posições) que já existe neste ponteiro ?7
R:

Você pode criar uma cópia desse ponteiro (em um laço obviamente), e depois usar a função realloc p redimensionar o tamanho do ponteiro que terá memória liberada.

1 curtida