Salve a tutti.
Mi sto avvicinando adesso alla programmazione C e sto cercando di comprenderne le basi.
La mia domanda è forse un po' "stupida" ma vorrei capire meglio l'allocazione dinamica della memoria.
Ho scritto questo semplice programma usando malloc() per creare un array bidimensionale di double:
Se non ho capito male ho creato così un array di 10 posizioni, ogni posizione contiene un puntatore a un array di tre elementi.codice:#define oops(s) { perror((s)); exit(EXIT_FAILURE); } #define MALLOC(s,t) if( ((s) = malloc(t)) == NULL) { oops("error malloc(): "); } #define INCREMENT 10 /* Tutorial 3 * dynamic memory allocation */ int main (int argc, const char * argv[]) { double **xyz; int j; MALLOC(xyz, sizeof(double *) * INCREMENT); for(j=0; j < INCREMENT; j++) { MALLOC(xyz[j], sizeof(double) * 3); } xyz[0][0] = 0; xyz[0][1] = 1; /* .... */ }
A questo punto se provassi ad assegnare xyz[0][4] = 4 dovrebbe darmi errore o non fare l'assegnazione o sbaglio (cosa che non fa)? In caso contrario allora l'allocazione di memoria a cosa serve esattamente?
grazie

Rispondi quotando