[爆卦]c未知陣列大小是什麼?優點缺點精華區懶人包

為什麼這篇c未知陣列大小鄉民發文收入到精華區:因為在c未知陣列大小這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者noodleT (麵T)看板C_and_CPP標題[問題] 陣列大小未知時間Sat Jul 14...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
bcb

問題(Question):
int *num = (int*)malloc(sizeof(int)*size);//size=10;

參考網路資料,建立未知大小的陣列後,sizeof(num)=4

正確來講應該是sizeof(num)=40吧?

程式碼(Code):(請善用置底文網頁, 記得排版)
int size,i;
cin>>size; //size=10
int *num = (int*)malloc(sizeof(int)*size);
for(i=0;i<size;i++){
num[i]=i;
cout<<num[i]<<" ; ";
}
cout<<sizeof(num);
system("pause");//暫停
return 0;

補充說明(Supplement):

另外想請教int *num = (int*)malloc(sizeof(int)*size);

這樣的寫法是否就是讓使用者自行決定num陣列的大小,

而不會造成憶體空間浪費?

--

我是麵T,哩賀
http://ppt.cc/-eS5

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.96.87
※ 編輯: noodleT 來自: 140.117.96.87 (07/14 14:42)
TaiwanXDman:malloc就要free掉啊... 07/14 14:48
loveme00835:這個問題有仔細看書應該知道為什麼 07/14 14:53
WJAider:sizeof( num ) 不是 40 應會回傳指標的大小 4 07/14 15:04
WJAider:多念書理解一下指標跟陣列? 07/14 15:04
prismwu:num是int* 所以是4沒錯 07/14 22:06
maerdimer:補充說明寫得沒錯 但malloc耗效能 而且不用之後要free掉 07/15 02:16
maerdimer:[重要] 發文前務必閱讀:常見問題十三誡 第六誡 07/15 02:17

你可能也想看看

搜尋相關網站