[問題] 動態配置結構和結構中的陣列

看板C_and_CPP (C/C++)作者 (l1l1l1lll1ll)時間13年前 (2012/12/19 21:44), 編輯推噓0(009)
留言9則, 4人參與, 最新討論串1/1
有一結構 typedef struct POPULATION { int* ary; int number; }population; population* ptr; POPULATION 結構 的數量會跟著計算次數不斷增加 ary 陣列的大小會跟著input的數字有關 用malloc配置記憶體該怎麼配置? 直覺想 ptr = (population*)malloc(sizeof(population) * numberOfPopulation); 接著for迴圈配置ary for (i = 0;i < numberOfPopulation; i++) { temp = ptr + i temp->ary = (int*)malloc(sizeof(int) * arySize); } 不過出錯了 請問該怎像寫才正確? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.165.111

12/19 21:53, , 1F
你應該先說出了什麼錯xd
12/19 21:53, 1F
malloc之後 我assign值進去 for (j = 0;j < arySize; j++) { *((temp->ary)+j) = j; } numberOfPopulation 固定是 4 arySize 是個位數這種小數字時都正常 不過到20時 我把陣列印出來看會參雜5575176 5575264 這種數字在裡面 例如 正常是 0 1 2 3 4 5 6 .... 19 會變成 5575176 1 5575264 3 5575352 5 ... 這樣 ※ 編輯: acess23 來自: 114.35.165.111 (12/19 22:05)

12/19 22:11, , 2F
程式是照你寫的跑,不是照你想的跑,你把完整一點的程式po
12/19 22:11, 2F

12/19 22:12, , 3F
出來吧! 這樣才能看你問題出在哪裡!
12/19 22:12, 3F
http://codepad.org/qvyNfG39 ※ 編輯: acess23 來自: 114.35.165.111 (12/19 22:15)

12/19 23:12, , 4F
你initialPopulation() i的loop應該是< numberOfPopulation吧
12/19 23:12, 4F

12/19 23:20, , 5F
原來錯那麼腦殘的地方
12/19 23:20, 5F

12/19 23:25, , 6F
貌似沒問題的
12/19 23:25, 6F

12/19 23:47, , 7F
我照p大的改過之後,跑那個code沒問題,到30也正常
12/19 23:47, 7F

12/19 23:52, , 8F
tdm-gcc 4.7.1
12/19 23:52, 8F

12/20 22:43, , 9F
:)
12/20 22:43, 9F
文章代碼(AID): #1GqSJDSI (C_and_CPP)
文章代碼(AID): #1GqSJDSI (C_and_CPP)