ISO C++ forbids converting a string constant to 'char*'
缘起:
char * ps = "hellow";
这样的语句乍一看没啥特别的,然而如果你调用了这根可怜的指针来修改字符串的内容,你就会得到一个精彩的内存非法操作。
先说为什么:
从图片我们知道,这种方法定义字符串时,会返回一个指向全局只读储存区的指针,这个内存区的内容可不是想改就能改的。
应该使用这样的语句:
const char * ps = "hellow";
char ps[] = "hellow";