1、這個空間是自己分配的,既然已經寫了p=(int *)malloc(10000)那就分配10000的大小,還需要顯示多少大小。對於一個指向一塊記憶體的指標如果用比如sizeof(p)顯示大小(int * 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、這個空間是自己分配的,既然已經寫了p=(int *)malloc(10000)那就分配10000的大小,還需要顯示多少大小。對於一個指向一塊記憶體的指標如果用比如sizeof(p)顯示大小(int * 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函式手動釋放。