自訂型態初使值 指定問題 |
尚未結案
|
pony0385
一般會員 發表:1 回覆:1 積分:0 註冊:2005-01-23 發送簡訊給我 |
這個問題程式如下.........
struct A { int x [ 5 ]; int Y [ 3 ]; int CN [ 2 ]; }; struct B { A aa ;// [2][5]; }; struct B ad[2] = { { { {0,0,0,0,0}, {0,0,0}, {0,0} }, { {0,0,0,0,0}, {0,0,0}, {0,0} } } }; void main() { }error C2078: too many initializers 出現這個 錯誤訊息 compile 無法過.. 請問棧上的前輩可否給予指點....謝謝 發表人 - pony0385 於 2005/09/02 17:51:13 發表人 - pony0385 於 2005/09/02 22:59:13 發表人 - pony0385 於 2005/09/02 23:01:46
------
haha |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
windblown
中階會員 發表:0 回覆:117 積分:98 註冊:2003-11-14 發送簡訊給我 |
|
ENIX007
高階會員 發表:28 回覆:274 積分:185 註冊:2003-11-27 發送簡訊給我 |
pony0385您好
先不論ad變數的型別,基本上ad變數是一個陣列,其中包含2個元素,
因此如果要用這種方式初始的話,就只能有2個右大括號...
struct B ad[2] = { { 0,0,0,0,0, 0,0,0, 0,0 }, { 0,0,0,0,0, 0,0,0, 0,0 }, };由於ad是struct B型別,因此裡面必須自行去初始其中元素... 所以像這種情形時,建議使用函式去初始就好,例如 memset()或ZeroMemory()等等... 如果是要特別指定某幾個元素值時,也建議這樣寫... ad[0].aa.x[3] = 5; ad[1].aa.CN[1] = 3; ... ... 如果一定要寫成展開式,應該就只能寫成小弟上面寫的那樣了... 參考看看 程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~
------
程式迷人之處,在於邏輯思考,然而卻也是惱人之處~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |