我正试图释放fe。当使用Valgrind时,我得到“无效的免费()”作为错误。有没有什么区别,如果我试图释放指针保存地址而不是双重指针?如何释放指向保存地址的指针的指针
int main()
{
double **fe = 0; int i,j;
fe = malloc(10 * sizeof(double *));
for (i = 0; i < 10; i++)
{
fe[i] = malloc(10 * sizeof(double));
}
double *X; X = malloc(2 * sizeof(double));
X[0] = 0; X[1] = 2;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
fe[i][j] = X[1];
}
}
free(X);
for (j = 0; j < 10; j++)
{
free(fe[j]);
}
free(fe);
return 0;
}
请正确缩进您的代码。它会帮助我们阅读。谢谢。 –
无法重现。你的实际代码在哪里? (例如,我和j在这段代码中没有任何声明。) –
对不起,马虎。我做了一些编辑。 (实际代码非常大,所以我已经复制了它的一个简单版本。) – user163917