在一个VC的MFC工程里面如下代码:char *a="hello";char *b="world";strcat(a,b);编译不会报错,但是运行的时候程序一走到这里就会非正常退出,为何 ?求解,多谢!但是这段代码在C++ builder和turbo c下都运行正确 啊
因为指针a指向的是常量字符串, VC里字符串常量存放在静态数据区里面的,静态数据区是只读的,strcat(a, b)是要修改静态区的数据,肯定就出错了, 但编译是不会发现这种错误的.可改为:char array[] = "hello";char *a=array; char *b="world"; strcat(a,b);