五分钟前,当我轻按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地更改了某些设置,但我真的不记得想过“嗯,我刚刚做了什么?”
当您使用这样的代码时
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