Sono un po 'nuovo a malloc e C in generale. Volevo sapere come posso, se necessario, estendere le dimensioni di un array con dimensioni fisse altrimenti con malloc.C: Espansione di un array con malloc
Esempio:
#define SIZE 1000
struct mystruct
{
int a;
int b;
char c;
};
mystruct myarray[ SIZE ];
int myarrayMaxSize = SIZE;
....
if (i > myarrayMaxSize)
{
// malloc another SIZE (1000) elements
myarrayMaxSize += SIZE;
}
- L'esempio di cui sopra dovrebbe rendere chiaro quello che voglio realizzare.
(A proposito: ho bisogno di questo per un interprete scrivo: Lavorare con un importo fisso di variabili e, in caso di più sono necessari, basta allocare dinamicamente)
'x = realloc (x, newsize)' è una perdita di memoria in attesa di accadere. –
Buon punto. Ho aggiornato il codice di esempio per gestire gli errori realloc. –
'myarray = myrealloced_array)' dovrebbe essere 'myarray = myrealloced_array;' :) – Saul