1 回答

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