看你代码怎么用了,不初始化的变量直接给别人用,会出奇奇怪怪的结果,所以编译器给个告警。但你要是把“-Wuninitialized”这个选项去掉,也就不告警了。
如果能保证中间过程先被赋值具体的值之后,再被别人使用,就不会有问题。你这段还没有赋值就直接给printf使用,就报错了。
你试试看把memset改成:i[1]='a'; 然后printf其中的i[1]应该就可以。
除了i[1],数组其它值仍然没有初始化,如果printf其它的比如i[3],还是不行的。
【 在 freyoneby 的大作中提到: 】
: 上面的代码我发现不加memset就会告警,加了就没有,编译期这么智能?
--
修改:langman FROM 221.224.146.*
FROM 49.78.147.*