我正試圖釋放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