当我尝试编译代码时,出现此错误,但不知道为什么:
错误:'free' free(A[i]); 的参数 1 的类型不兼容;
void freeMatrix(int N, double *A)
{
for(int i = 0; i < N; i++)
free(A[i]);
free(A);
}
没有足够的声誉来评论,因此写作作为答案。
A[i] 是双精度型。free() 需要一个指针。您可能打算将该函数声明为
void freeMatrix(int N, double **A){
for(int i = 0; i < N; i++)
free(A[i]);
free(A);
}
问题得到澄清:矩阵最初创建为
double *A = (double *)malloc(N * N * sizeof(double));
在这种情况下,单个调用
free(A);
足够的。一般来说,你应该像 malloc() 一样经常调用 free()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句