总结一个小错误deprecated conversion from string constant to “char *“报错问题
char* MessageArray02[]={"刹车片过热智能驾驶无法激活", "Brake pads overheated\niDrive impossibly activated"};
用最新的g++编译一下就会得到标题中的警告,无论使用gcc 或者g++命令, 都会报出下面的错误, 不能通过编译:
为什么呢?原来char *背后的含义是:给我个字符串,我要修改它。
而理论上,我们传给函数的字面常量是没法被修改的。
所以说,比较和理的办法是把参数类型修改为const char *。
这个类型说背后的含义是:给我个字符串,我只要读取它。
修改方案如下。
sol1: char* 改为const char* 修饰即可:
sol2: 方案是使用string:
string x = "hello";
sol3: 将string literal转型为char* 的type:
char* x = (char*)"hello";
版权声明:本文为qq_37195486原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。