[爆卦]struct array宣告是什麼?優點缺點精華區懶人包

為什麼這篇struct array宣告鄉民發文收入到精華區:因為在struct array宣告這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pulajin (PUPUPUPUPUPU)看板C_and_CPP標題[問題] struct裡面...


開發平台(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
EdisonX:b.a_tmp = new A[a_cnt]; 10/25 00:47
抱歉打錯> "< 我再修改一下
※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:49)
EdisonX:我也打錯 @@ b[i].a_tmp = new A[a_cnt]; 10/25 00:50
改了還是不行耶 囧""
※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:51)
EdisonX:@@ 我以為你前面的錯都是筆誤. (1) 第一個 struct 拼錯字. 10/25 00:53
EdisonX:(2) 第二個 struct 裡面成員少分號. 10/25 00:53
EdisonX:改過後加上 header 應該就正常了. 10/25 00:53
不是耶 因為這是我打的例子而已XD"

就算改掉 他還是一樣會出錯~"~
※ 編輯: pulajin 來自: 140.115.73.128 (10/25 00:55)
EdisonX:最後加 return 0; 再附完整程式碼 (含 header ) 10/25 00:57
EdisonX:http://codepad.org/ZuLz6VCy 10/25 01:01
cuteclare:看起來沒問題啊...話說沒return 編譯器會給過嗎 ? 10/25 01:10

感謝板友的教學!!

結果是我犯了低級錯誤> <

裡面有個讀檔的動作會讀到a_cnt 跟b_cnt的值

但是我不太熟Express的檔案要放在哪裡所以低級錯誤.........~"~
※ 編輯: pulajin 來自: 140.115.73.128 (10/25 01:18)

你可能也想看看

搜尋相關網站