[問題] struct裡面的動態陣列宣告

看板C_and_CPP (C/C++)作者 (PUPUPUPUPUPU)時間13年前 (2012/10/25 00:45), 編輯推噓3(305)
留言8則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2010 Express 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 不知道如何正確使用struct的動態宣告 我有兩個struct:A, B, 其中A又包含在struct B裡面 但是兩個的初始大小都是不確定的,所以才打算用動態宣告 我在猜是不是記憶體位置沒有配置好,但是以前都習慣直接用new所以> < 錯誤結果(Wrong Output): Invalid allocation size 程式碼(Code):(請善用置底文網頁, 記得排版) struct A{ int tmp1; int tmp2; }; struct B{ int tmp3; A* a_tmp; }; int main() { int b_cnt = 10; int a_cnt = 100; B* b = new B [b_cnt]; for(int i =0; i<b_cnt; i++) { b[i].a_tmp = new A [a_cnt]; } } 補充說明(Supplement): 用express的debug功能就會跳出invalid allocation 如果用命令提示字元就沒問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.73.128

10/25 00:47, , 1F
b.a_tmp = new A[a_cnt];
10/25 00:47, 1F
抱歉打錯> "< 我再修改一下 ※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:49)

10/25 00:50, , 2F
我也打錯 @@ b[i].a_tmp = new A[a_cnt];
10/25 00:50, 2F
改了還是不行耶 囧"" ※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:51)

10/25 00:53, , 3F
@@ 我以為你前面的錯都是筆誤. (1) 第一個 struct 拼錯字.
10/25 00:53, 3F

10/25 00:53, , 4F
(2) 第二個 struct 裡面成員少分號.
10/25 00:53, 4F

10/25 00:53, , 5F
改過後加上 header 應該就正常了.
10/25 00:53, 5F
不是耶 因為這是我打的例子而已XD" 就算改掉 他還是一樣會出錯~"~ ※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:55)

10/25 00:57, , 6F
最後加 return 0; 再附完整程式碼 (含 header )
10/25 00:57, 6F

10/25 01:01, , 7F

10/25 01:10, , 8F
看起來沒問題啊...話說沒return 編譯器會給過嗎 ?
10/25 01:10, 8F
感謝板友的教學!! 結果是我犯了低級錯誤> < 裡面有個讀檔的動作會讀到a_cnt 跟b_cnt的值 但是我不太熟Express的檔案要放在哪裡所以低級錯誤.........~"~ ※ 編輯: pulajin 來自: 140.115.73.128 (10/25 01:18)
文章代碼(AID): #1GY1iGkP (C_and_CPP)
文章代碼(AID): #1GY1iGkP (C_and_CPP)