总结一个小错误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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>