La domanda probabilmente è molto banale ma proprio non riesco a risolvere sta cosa:
Ho allocato dinamicamente una matrice di double in questo modo:
Ora vorrei inzializzarla, ma evitare due cicli for, ma uno unico che acceda in manieracodice:double** coeffMatAlloc (int nrow, int ncol){ int i = 0; int j = 0; double** mat; if((mat = (double**)malloc(nrow*(sizeof(double*)))) == NULL){ printf("\nErrore nell'allocazione delle righe della matrice o spazio insufficiente\n"); exit(0); } else { for (i=0; i<nrow; i++) if((mat[i] = (double*)malloc(ncol*(sizeof(double)))) == NULL){ printf("\nErrore nell'allocazione delle colonne della matrice o spazio insufficiente\n"); exit(0); } } i = 0;
monodimensionale alla matrice, trattandola di fatto come un array.
Il programma arrivato all'ultima cella (ho fatto dei printf di debug), crasha.codice:for(i=0; i<nrow*ncol; i++) mat[i] = 0; return mat; }
Perchè? Grazie anticipatamente.

Rispondi quotando