[問題] 陣列大小未知

看板C_and_CPP (C/C++)作者 (麵T)時間13年前 (2012/07/14 14:42), 編輯推噓0(007)
留言7則, 5人參與, 最新討論串1/1
開發平台(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)

07/14 14:48, , 1F
malloc就要free掉啊...
07/14 14:48, 1F

07/14 14:53, , 2F
這個問題有仔細看書應該知道為什麼
07/14 14:53, 2F

07/14 15:04, , 3F
sizeof( num ) 不是 40 應會回傳指標的大小 4
07/14 15:04, 3F

07/14 15:04, , 4F
多念書理解一下指標跟陣列?
07/14 15:04, 4F

07/14 22:06, , 5F
num是int* 所以是4沒錯
07/14 22:06, 5F

07/15 02:16, , 6F
補充說明寫得沒錯 但malloc耗效能 而且不用之後要free掉
07/15 02:16, 6F

07/15 02:17, , 7F
[重要] 發文前務必閱讀:常見問題十三誡 第六誡
07/15 02:17, 7F
文章代碼(AID): #1G0HIyUd (C_and_CPP)
文章代碼(AID): #1G0HIyUd (C_and_CPP)