[問題] 動態宣告陣列 --- 第一維未知

看板C_and_CPP作者 (corn)時間15年前 (2009/05/11 18:45), 編輯推噓5(505)
留言10則, 6人參與, 最新討論串1/1
x1 x2 x3 x4 y [0] 1 2 3 4 y [1] 2 3 4 5 . . . while(讀資料) { data=(double **)malloc(sizeof(double *)); data[i]=(double *)malloc(sizeof(double)*4); ... } 有讀到下一行,才會有下個y 所以幾列是不確定 如果我不想將xy反轉的方式來作 有什麼方法可以動態宣告,讓第一維長度擴大?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.94.82

05/11 18:54, , 1F
realloc()
05/11 18:54, 1F

05/11 19:31, , 2F
四個陣列不斷地 realloc 會很慢
05/11 19:31, 2F

05/11 19:32, , 3F
建議你先配置一塊大的慢慢塞 不夠用時才重新配置
05/11 19:32, 3F

05/11 19:53, , 4F
不若先看 file size, 估一下行數, 這樣才不用 resize 太多次
05/11 19:53, 4F

05/11 21:43, , 5F
我也是查到1F的函數
05/11 21:43, 5F

05/11 21:44, , 6F
謝謝樓上前輩們的教學
05/11 21:44, 6F

05/11 23:14, , 7F
最近看到一個作法是, 這一次空間不夠就要兩倍, 下次用完
05/11 23:14, 7F

05/11 23:15, , 8F
了再要兩倍, 就不至於每一次都realloc, 聽說vector就是
05/11 23:15, 8F

05/11 23:15, , 9F
類似的作法??
05/11 23:15, 9F

05/11 23:41, , 10F
沒錯 vector是這樣做的
05/11 23:41, 10F
文章代碼(AID): #1A207aMG (C_and_CPP)