|
|
|
![]() |
|
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: 19:08.