C语言 指针字符串 , char * msg; msg="1234567890"; msg[5]='A' Linux运行不对,HP,Solaris运行对。

日期:2021-07-12 13:17:19 人气:1

C语言 指针字符串 , char * msg; msg="1234567890"; msg[5]='A' Linux运行不对,HP,Solaris运行对。

char * msg;
msg="1234567890";
这样定义就相当于msg指针指向的是一个const变量,也就是说msg = “1234567890”所在的内存区域是不可写的。所以msg[5] = 'A'没有写内存的权限,所以就会报错。char *msg = "1234567890"这样定义编译器编译的时候就会把msg当做是const变量放在不可写的内存区域。
#include <stdli
    A+
热门评论