3 回答

TA貢獻883條經驗 獲得超454個贊
這和結構體沒關系呀。
錯誤提示說得很清楚啦:N 未初始化!
你在第 14 行僅僅聲明了 N,并未予以初值,那么這個局部變量 N 的初值是不確定的!
for 循環控制條件中有不確定的內容,當然不正確啦。

TA貢獻883條經驗 獲得超454個贊
我看到了你在私信中的提問。我不知道你是否看到了我上次回復中的解答? 還是說沒有看懂?
我來指出一下我上個回復中的重點:
我在上次回復中的第一段說明了:11 行這樣聲明的數組類型是不完備的,其能容納的元素數是未知的。關鍵是:不是說你能用什么方法來得到數組大小,而是根本就不應該使用這樣的數組!?
況且你截圖中提到了 do while 也無法得出這個數組的大小
對于你這里的需求,我在回復的后面給出了兩個常用的解決辦法,請試著理解下。
第二個方法涉及“指針和數組的關系”及“動態分配內存”的知識,我不知道你是否學過這些。
如果學過了但看不明白,請說明你對這兩句是如何理解的? 哪里不明白?
如果還沒學過,那么請用第一個方法。如果你覺得第一種方法不適用,那說明你目前的知識儲備不足以解決這個問題,請待深入學習后再來處理。
P.S. 對于回答問題,在這里回復能更好地排版,比在私信中交流更合適。

TA貢獻883條經驗 獲得超454個贊
再次看了一下代碼,你在第 11 行聲明的 SI 數組也不太好。這樣大括號留空的聲明表示它是一個“未知大小”的數組,算是不完備類型。你不知道它到底能容納多少個元素的。不要這樣運用數組。想要使用數組,一定要有明確的大小。
好吧,你遇到的情況是“目前沒法用一個確定的整型常量來指定數組大小”,一般有幾種處理辦法:
如果你能知道元素數最多不會超過某一上限的話,省事的做法是直接聲明一個上限大小的數組
如果完全不知道會有多少個元素,那就用 malloc 之類的函數來動態申請內存。
比如先申請 10 個大小,發現不夠用時再擴大 10 個,又不夠時再擴大......
- 3 回答
- 0 關注
- 1256 瀏覽
添加回答
舉報