用malloc函數分配的內存空間大小用什么函數能顯示出來大小。比如sizeof(int)可顯示int空間的大小,p=(int *)malloc(10000)怎么顯示出來10000的空間大小
1 回答

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
1、這個空間是自己分配的,既然已經寫了p=(int *)malloc(10000)那就分配10000的大小,還需要顯示多少大小。對于一個指向一塊內存的指針如果用比如sizeof(p)顯示大?。╥nt * p=new int[10]),也只是顯示4,代表首地址大小,不能顯示正塊內存的大小,而且根本沒有意義。
2、動態內存分配,可以自由的分配指定大小的內存空間。當程序運行時,程序員并不清楚某一數據需要的具體內存空間大小時,可以使用動態分配。
malloc函數原型
void *malloc(int nSize)
分配一個nSize大小的內存空間,如果分配成功則返回地址空間的首地址,如果分配失敗則返貨NULL
nSize一般使用 sizeof(類型A)*N 的計算方式獲取大小。意思為:為分配n個類型A所占空間的大小。
獲取的指針地址需要強制轉換為指定類型
例如:int *p = (int*)malloc(sizeof(int)*100);
使用malloc動態分配的內存空間需要使用free函數手動釋放。
- 1 回答
- 0 關注
- 1119 瀏覽
添加回答
舉報
0/150
提交
取消