Ciao! volevo sapere che differenza c'è tra queste tre istruzioni
codice:double *var;
codice:var=(double*)malloc((N)*sizeof(double));codice:var=(double*)calloc(N,sizeof(double));codice:var=double*N
Ciao! volevo sapere che differenza c'è tra queste tre istruzioni
codice:double *var;
codice:var=(double*)malloc((N)*sizeof(double));codice:var=(double*)calloc(N,sizeof(double));codice:var=double*N
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
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.codice:var = (double*) N
every day above ground is a good one