亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C語言結構體的問題

C語言結構體的問題

C
WANY2 2018-07-13 22:46:55
查看完整描述

3 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

這和結構體沒關系呀。

錯誤提示說得很清楚啦:N 未初始化!

你在第 14 行僅僅聲明了 N,并未予以初值,那么這個局部變量 N 的初值是不確定的!

for 循環控制條件中有不確定的內容,當然不正確啦。

查看完整回答
1 反對 回復 2018-07-13
  • WANY2
    WANY2
    我想讀取一個文件里的數據,但是現在不知道它有多少數據,然后將那些數據整合成結構體。那在不知道那個文件里有多少數據的情況下,我該如何定義數組的長度N呢。
?
onemoo

TA貢獻883條經驗 獲得超454個贊

我看到了你在私信中的提問。我不知道你是否看到了我上次回復中的解答? 還是說沒有看懂?

我來指出一下我上個回復中的重點:

我在上次回復中的第一段說明了:11 行這樣聲明的數組類型是不完備的,其能容納的元素數是未知的。關鍵是:不是說你能用什么方法來得到數組大小,而是根本就不應該使用這樣的數組!?

況且你截圖中提到了 do while 也無法得出這個數組的大小


對于你這里的需求,我在回復的后面給出了兩個常用的解決辦法,請試著理解下。

第二個方法涉及“指針和數組的關系”及“動態分配內存”的知識,我不知道你是否學過這些。

如果學過了但看不明白,請說明你對這兩句是如何理解的? 哪里不明白?

如果還沒學過,那么請用第一個方法。如果你覺得第一種方法不適用,那說明你目前的知識儲備不足以解決這個問題,請待深入學習后再來處理。


P.S. 對于回答問題,在這里回復能更好地排版,比在私信中交流更合適。

查看完整回答
反對 回復 2018-07-14
?
onemoo

TA貢獻883條經驗 獲得超454個贊

再次看了一下代碼,你在第 11 行聲明的 SI 數組也不太好。這樣大括號留空的聲明表示它是一個“未知大小”的數組,算是不完備類型。你不知道它到底能容納多少個元素的。不要這樣運用數組。想要使用數組,一定要有明確的大小。


好吧,你遇到的情況是“目前沒法用一個確定的整型常量來指定數組大小”,一般有幾種處理辦法:

  1. 如果你能知道元素數最多不會超過某一上限的話,省事的做法是直接聲明一個上限大小的數組

  2. 如果完全不知道會有多少個元素,那就用 malloc 之類的函數來動態申請內存。

    比如先申請 10 個大小,發現不夠用時再擴大 10 個,又不夠時再擴大......

查看完整回答
反對 回復 2018-07-14
  • 3 回答
  • 0 關注
  • 1256 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號