所以我的代码是
#include <stdio.h>
#include <string.h>
int main()
{
const char *a="123456789abcdef";
char b[10];
int i=0;
while((b[i]=a[i])!='\0')
++i;
printf("%s, %d\n",b,strlen(b));
return 0;
}
该代码存在数组b的数组溢出,但是当我在我的系统(64位ubuntu 12.04 lts)中使用gcc(版本4.6.3)编译它时,它成功了。
这个程序的输出是123456789abcdef,15返回
0表示这个程序正常退出。
不知道是我的编译器的问题还是我的系统的问题,有人可以告诉我吗?PS它似乎只出现在带有gcc的64位linux中。这是一个错误吗?