【发布时间】:2010-08-19 16:42:43
【问题描述】:
int main(void)
{
char four[4] = "four";
return 0;
}
编译为 C++ 程序时,G++ 报告
xxx.cpp: 在函数 int main():
xxx.cpp:3:错误:字符数组的初始化字符串太长
当编译一个 C 程序时,GCC 没有报错。
在我看来,正如我所料,赋值正确地将所有 4 个字节复制到变量中。
所以我的问题归结为.....
在 C 中观察到的行为是否正确,或者我是否在某处接触了未定义的行为, 还是完全是别的东西?
【问题讨论】:
-
有一个非常相似的问题,这里有适合这个问题的答案:stackoverflow.com/questions/3216462/…
-
恭喜你找到了。是的,它确实讨论了这个问题。
标签: c++ c arrays initialization string-literals