[問題] 動態配置結構和結構中的陣列
有一結構
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
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
12/19 22:11, 2F
→
12/19 22:12, , 3F
12/19 22:12, 3F
→
12/19 23:12, , 4F
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
12/19 23:47, 7F
→
12/19 23:52, , 8F
12/19 23:52, 8F
→
12/20 22:43, , 9F
12/20 22:43, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章