void main()
{char p[6];char *buf = new char[4];strcpy(buf,"012356789");//这里越界不会报错strcpy(p,"Hello"); //若此处越界立即报错cout<<p<<endl;cout<<buf<<endl;delete []buf; //buf拷贝越界,这里释放数组报错
}
第一个问题:为什么数组指针buf在拷贝越界的时候(所指向的数组大小只有4,而拷贝进去的大小却是11),为何打印的时候也没有报错呢?
这个问题百度还是很好找,cout<<标准输出,字符串数组指针,碰到'