今天看到一段其他同事写的代码,顿时就感到菊花紧了一下。
int i = strlen(str);
char buf[i];这两行代码,在windows下肯定是编译不通过的,原因大家应该懂的。
但是在solaris下居然就通过了,而且一点告警也没有啊。
就是因为没这样用过,前两天被一MM问之:你知道数组和malloc哪个效率高吗?
这还用问吗,当然是数组了。可是当哥看到这两行代码之后,心中千万只草泥马在奔腾啊,这不是在问,这是在考哥呀,被一妹子鄙视了呀。
从windows转到unix在这就栽了一跟头啊。
有木有高人能讲讲为啥unix就允许这样定义呢?
Unix允许定义未初始化数组的原因
解释了在Unix系统中允许定义未初始化数组的原因,并讨论了这种行为在不同操作系统(如Windows与Solaris)上的差异。
351

被折叠的 条评论
为什么被折叠?



