当前位置:  开发笔记 > 编程语言 > 正文

无法从'const char [3]'转换为'char *'x100000(Qt Creator C ++ Windows 32)

如何解决《无法从'constchar[3]'转换为'char*'x100000(QtCreatorC++Windows32)》经验,为你挑选了1个好方法。

五分钟前,当我轻按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中的某些内容,但是自从在错误开始之前就没有打开设置。

有任何想法吗?我一定是心不在changed地更改了某些设置,但我真的不记得想过“嗯,我刚刚做了什么?”



1> Jake Psimos..:

当您使用这样的代码时

char *astring2 = "some letters";

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

同样,您不能更改指针的地址,因为由于上述规则,这将导致内存泄漏。

但是,除非您将其设为const,否则这并不遵循该规则:

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

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有