ho incontrato questo piccolo pezzo di codice in this question, & voleva sapere,Shrinking con realloc
Può la funzione realloc()
mai spostare un blocco di memoria in un'altra posizione, quando lo spazio di memoria puntato è rimpiccioliti?
int * a = malloc(10*sizeof(int));
int * b = realloc(a, 5*sizeof(int));
Se possibile, a quali condizioni, posso aspettare b
avere un indirizzo diverso da quello in a
?
Solo per rimuovere qualsiasi dubbio, ho effettivamente riscontrato questa situazione su iOS 6 dove un realloc di 40K fino a 224 byte sposta effettivamente la memoria in una nuova posizione. – sup