C语言结构体的问题


https://img2.mukewang.com/5b48bb4100013c4712550850.jpg

WANY2
浏览 1181回答 3
3回答

onemoo

这和结构体没关系呀。错误提示说得很清楚啦:N 未初始化!你在第 14 行仅仅声明了 N,并未予以初值,那么这个局部变量 N 的初值是不确定的!for 循环控制条件中有不确定的内容,当然不正确啦。

onemoo

我看到了你在私信中的提问。我不知道你是否看到了我上次回复中的解答? 还是说没有看懂?我来指出一下我上个回复中的重点:我在上次回复中的第一段说明了:11 行这样声明的数组类型是不完备的,其能容纳的元素数是未知的。关键是:不是说你能用什么方法来得到数组大小,而是根本就不应该使用这样的数组! 况且你截图中提到了 do while 也无法得出这个数组的大小对于你这里的需求,我在回复的后面给出了两个常用的解决办法,请试着理解下。第二个方法涉及“指针和数组的关系”及“动态分配内存”的知识,我不知道你是否学过这些。如果学过了但看不明白,请说明你对这两句是如何理解的? 哪里不明白?如果还没学过,那么请用第一个方法。如果你觉得第一种方法不适用,那说明你目前的知识储备不足以解决这个问题,请待深入学习后再来处理。P.S. 对于回答问题,在这里回复能更好地排版,比在私信中交流更合适。

onemoo

再次看了一下代码,你在第 11 行声明的 SI 数组也不太好。这样大括号留空的声明表示它是一个“未知大小”的数组,算是不完备类型。你不知道它到底能容纳多少个元素的。不要这样运用数组。想要使用数组,一定要有明确的大小。好吧,你遇到的情况是“目前没法用一个确定的整型常量来指定数组大小”,一般有几种处理办法:如果你能知道元素数最多不会超过某一上限的话,省事的做法是直接声明一个上限大小的数组如果完全不知道会有多少个元素,那就用 malloc 之类的函数来动态申请内存。比如先申请 10 个大小,发现不够用时再扩大 10 个,又不够时再扩大......
打开App,查看更多内容
随时随地看视频慕课网APP