Ciao a tutti!
Come da oggetto.
Copio il codice:
codice:
////******************** Allocazione dinamica matrice 2D **********************//
int ncol = 4;
int nline = 16;
int ii,jj;
double **SIMdata;
SIMdata = (double**) malloc( nline * sizeof(double*) );
for(ii=0; ii<nline; ii++)
{
SIMdata[ii] = (double*) malloc( ncol * sizeof(double*) );
}
// SIMdata[nline][ncol]=[0...nline-1][0...ncol-1]
//************************* Inizializzazione SIMdata **************************//
// double SIMdata [nline][ncol];
for(ii=0;ii<nline;ii++)
{
for(jj=0;jj<ncol;jj++)
{
SIMdata[ii][jj]=0.; // INIZIALIZZAZIONE
printf("%lf\n",SIMdata[ii][jj]);
}// for(j ...)
}// for(i ...)
Apparentemente l'allocazione e' eseguita correttamente, qualunque sia nline. La seconda parte, invece, si "intoppa" se nline e' "grande" (ordine 1000). La cosa strana e' che se io inizializzo la matrice in maniera diretta (eliminando l'allocazione dinamica e introducendo un'istruzione tipo "double SIMdata [nline][ncol];"), l'inizializzazione e' eseguita correttamente per qualunque nline.
C'e un errore nel mio codice, oppure l'allocazione dinamica ha dei limiti?
Grazie