|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
[C] Allocazione dinamica matrici: malloc() o calloc() ?
Ho scritto un programma che alloca dinamicamente (usando malloc) una matrice di 'r' righe e 'c' colonne:
Codice:
/* allocazione vettore righe (ogni elemento del vettore è un puntatore) */
matrice = (int**)malloc( r * sizeof(int) );
/* Per ogni riga si allocano le colonne */
for(i=0; i<r; i++)
matrice[i] = (int*)malloc( c * sizeof(int) );
Codice:
matrice = (int**)calloc( r,sizeof(int) );
for(i=0; i<r; i++)
matrice[i] = (int*)malloc( c,sizeof(int) );
Cambia qualcosa sostanzialmente? Qual è piu giusto usare? (dato che funzionano tutti e due) Di norma quando si allocano vettori non si dovrebbe usare la calloc? tnx
__________________
ka0s |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Calloc oltre ad allocare lo spazio richiesto lo inizializa con il valore 0. Nel tuo caso io userei una malloc per la prima chiamata e una calloc per le chiamate nel for in modo da avere degli array gia pronti per l'uso.
ciao |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
grazie!
__________________
ka0s |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:55.



















