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 关注
- 1212 浏览
添加回答
举报