grazie per la risposta, ma non capisco perchè dovrebbe essere sbagliato...
ho cercato un pò e ho visto che per allocare dinamicamente una matrice si fa così, inoltre questo codice funziona:
codice:
#include <stdio.h>
#include <stdlib.h>
double** allocaMatrice(int righe, int colonne);
void main(){
double **mat;
int i, j;
int righe = 2;
int colonne = 2;
mat = allocaMatrice(righe, colonne);
for(i=0; i<righe; i++){
for(j=0; j<colonne; j++){
mat[i][j] = 0.0;
}
}
for(i=0; i<righe; i++){
printf("\n");
for(j=0; j<colonne; j++){
printf("%d", mat[i][j]);
}
}
//dealloco matrice
for(i=0; i<colonne; i++){
free(mat[i]);
}
free(mat);
}
double** allocaMatrice(int righe, int colonne){
int i;
double **mat;
mat = (double**)calloc(righe,sizeof(double*));
if (mat == NULL){
puts("Spazio insufficiente");
exit(0);
}
for (i=0; i<righe; i++){
mat[i] = (double*)calloc(colonne,sizeof(double));
if (mat[i] == NULL){
puts("Spazio insufficiente");
exit(0);
}
}
return mat;
}
il problema nasce quando cerco di reallocare la matrice...