读书人

C语言简单题目颠覆小弟我的价值观

发布时间: 2013-07-08 14:13:00 作者: rapoo

C语言简单题目,颠覆我的价值观
int main()
{
int i = 10;
i++;
char str[i];

strcpy(str, "1234567890123456789");
printf("sizeof(str):%d,%s\n", sizeof(str),str);

return 0;
}

这个段代码,居然运行正常,输出正常?
颠覆我的价值观啊!!
可以这样动态定义临时数组的?
拷贝字节太多,程序居然也没有崩溃!!
Gcc和C-Free测试过输出为
sizeof(str):11,1234567890123456789

C
[解决办法]
C语言中,直到C99标准出现之前,声明数组时在方括号内只能使用整数常量表达式。而C99做了很大改进,允许数组的[ ]中的值是整形变量或是整形表达式。

读书人网 >C语言

热点推荐