加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

无法从’const char [3]’转换为’char *’x100000(Qt Creator C

发布时间:2020-12-16 10:00:41 所属栏目:百科 来源:网络整理
导读:五分钟前,当我点击f5并得到102个错误时,一切都运行良好: error: C2440: 'initializing' : cannot convert from 'const char [17]' to 'char *'Conversion from string literal loses const qualifier (see /Zc:strictStrings) 具体的是第30行: char* hexch
五分钟前,当我点击f5并得到102个错误时,一切都运行良好:

error: C2440: 'initializing' : cannot convert from 'const char [17]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)

具体的是第30行:

char* hexchars = "0123456789ABCDEF";

我没有触及错误所在的文件至少一周.我通常会说我在编译args或其他东西时意外地改变了一些东西,但是在开始出错之前我没有打开设置.

有任何想法吗?我一定是心不在焉地改变了一些设置,但我真的记不起来了“呃,我刚刚做了什么?”

解决方法

当你使用这样的代码

char *astring2 = "some letters";

C(和C)将其放入只读存储器中.即使它不是const,也不能修改用文字初始化的char指针的内容.

此外,您无法更改指针的地址,因为它会因上述规则导致内存泄漏.

但是,这不遵循该规则,除非你使它成为const:

char astring[] = "some letters that can be changed";
char *ptrToString = astring; //work
astring2 = astring //not work

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读