日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言中二重指针如何赋值,关于二重指针释放的有关问题

發布時間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言中二重指针如何赋值,关于二重指针释放的有关问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于二重指針釋放的問題

使用?malloc?來申請內存,申請的代碼部分如下:

float?*fp?=?(float*)malloc(sizeof(float)*?h?*?w);

float?**cost?=?(float**)malloc(sizeof(float*)*?h);

for?(int?i?=?0;?i?

cost[i]?=?&fp[i?*?w];

}

那我釋放的時候應該如何釋放呢?

我現在采用的辦法是:

for?(int?i?=?0;?i?

free(cost[i]);

cost[i]?=?NULL;

}

free(fp);

顯然,這個代碼在循環的時候就報錯了……所以想請教一下大家正確的姿勢。

------解決思路----------------------

有幾次malloc就使用幾次free;而且二者的地址必須相同;

malloc分配的內存,是有簿記的;只能在分配的地址上釋放;否則沒法找到大小信息(free用來釋放);

所以,不能夠“free(cost[i]);”;

而只能:free(fp);(或者等價的cost[0]);

------解決思路----------------------

free?(fp);

free?(cost);

或者

free?(*cost);

free?(cost);

也就是free的次數必須和malloc的次數相同。雖然你分配內存時在for循環中的行為很奇怪(通常二重指針不是這么申請內存的)。

------解決思路----------------------

僅供參考:#include?

#include?

#include?

int?**newarr2d(int?rows,int?cols)?{

int?**p,i;

p=(int?**)malloc(rows*sizeof(int?*));

if?(NULL==p)?exit(1);

for?(i=0;i

p[i]=(int?*)malloc(cols*sizeof(int));

if?(NULL==p[i])?exit(1);

}

return?p;

}

void?deletearr2d(int?**p,int?rows)?{

int?i;

for?(i=0;i

free(p[i]);

}

free(p);

}

int?main()?{

int?**arr2d,i,j,r,c;

r=4;

c=5;

//在堆中開辟一個4×5的二維int數組

arr2d=newarr2d(r,c);

for?(i=0;i

for?(j=0;j

arr2d[i][j]=i*c+j;

}

}

for?(i=0;i

for?(j=0;j

printf("?%2d",arr2d[i][j]);

}

printf("\n");

}

deletearr2d(arr2d,r);

r=6;

c=3;

//在堆中開辟一個6×3的二維int數組

arr2d=newarr2d(r,c);

for?(i=0;i

for?(j=0;j

arr2d[i][j]=i*c+j;

}

}

for?(i=0;i

for?(j=0;j

printf("?%2d",arr2d[i][j]);

}

printf("\n");

}

deletearr2d(arr2d,r);

return?0;

}

//??0??1??2??3??4

//??5??6??7??8??9

//?10?11?12?13?14

//?15?16?17?18?19

//??0??1??2

//??3??4??5

//??6??7??8

//??9?10?11

//?12?13?14

//?15?16?17

//

總結

以上是生活随笔為你收集整理的c语言中二重指针如何赋值,关于二重指针释放的有关问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。