私は行列にメモリを割り当てるために、この機能を持っている:これらのmallocをどのように解放すればよいですか?
double **mmalloc(int r, int c){
double **matrix = (double **)malloc((r)*sizeof(double*));
for (int y = 0; y < r; y++){
matrix[y] = (double *)malloc(c*sizeof(double));
}
for (int y = 0; y < r; y++){
for(int x = 0; x < c; x++){
matrix[y][x] = 0;
}
}
return matrix;
}
はどのようにして返された行列のすべてのメモリを解放するのでしょうか?私はこの行列を解放する関数を持っています...行列の行を解放することはできますが、列を解放することはできません。
はここで解放機能です:
// Free all memory allocated for A
void mfree(int r, int c, double **A){
for (int y = 0; y < r; y++){
free(A[y]);
}
}
で生産コードで使用する前に、セカンドオピニオンを取得し、いつものように、[「ドンしてくださいしないでください"malloc'の戻り値をキャストする](http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc);) – Quentin