在我的程序中,我使用了一个二维矩阵,其中每个单元代表一个由两个双精度组成的结构。在我的程序结束时,我想释放这个矩阵使用的所有内存。所以我写了一个这样的双循环“for”:
if (I != NULL)
{
for (i = 0; i < nb_prev; i++)
{
for (j = 0; j < nb_samples; j++)
{
free(&(I[i][j]));
}
free(&(I[i]));
}
}
但是在第二个“for”中的第二个循环之后,我得到了一个堆错误。也许我做错了。有人可以帮我吗?
从评论更新:
内存分配如下:
Power_time **I;
I = (Power_vtime)malloc(sizeof(Power_time*)*nb_prev);
if (I == NULL) exit(0);
for (i = 0; i < nb_prev; i++) {
I[i] = (Power_time*)malloc(sizeof(Power_versus_time)*nb_samples);
if (I_arriv[i] == NULL) exit(0);
}