PDA

Visualizza la versione completa : [c/c++ OT] Allocazione dinamica memoria


SpaceMonkey
18-09-2010, 13:43
Ciao! volevo sapere che differenza c'è tra queste tre istruzioni

double *var;




var=(double*)malloc((N)*sizeof(double));

var=(double*)calloc(N,sizeof(double));

var=double*N

YuYevon
19-09-2010, 13:58
Se leggi la documentazione di malloc() e calloc() dovrebbe esserti tutto chiaro... le prime due istruzioni fanno esattamente la stessa cosa, allocano spazio per N elementi di tipo double (la calloc() in particolare inizializza tali elementi a 0).

L'ultima istruzione non ha molto senso. Fermo restando che forse volevi scrivere



var = (double*) N


stai assegnando a var il valore di N castato a puntatore a double. Ora se N è un intero (come si deduce dalle istruzioni precedenti) stai convertendo quel valore a un indirizzo di memoria, il che non ha molto senso perché non è detto che quel valore corrisponda ad un indirizzo valido. Se poi l'intenzione era, per qualche oscuro motivo, quella di allocare spazio per N elementi di tipo double, allora è completamente sbagliato.

Loading