[Warning] ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
时间: 2024-05-12 13:15:18 浏览: 339
这个警告是因为 C++ 中的字符串常量是不可变的,但是当你把一个字符串常量赋值给一个 char* 指针时,编译器会把它视为一个可变的字符串。为了解决这个问题,你应该将 char* 改为 const char*,这样就能避免这个警告。
例如:
```
const char* myString = "Hello, world!";
```
如果你需要修改这个字符串,你可以使用 char[] 数组来存储它,例如:
```
char myString[] = "Hello, world!";
```
这样定义的 char 数组是可变的,你可以对它进行修改。但是你需要注意的是,在使用这种方法时,你需要手动管理内存,确保你不会越界或者泄漏内存。
相关问题
[warning] iso c++ forbids converting a string constant to 'char*' [-wwrite-strings]
这个警告是因为ISO C++标准不允许将字符串常量转换为char*类型。这是因为字符串常量是只读的,而char*类型可以被修改。如果你需要修改字符串常量,应该使用char数组或者std::string类型。
iso c++ forbids converting a string constant to ‘char*’ [-wwrite-strings]
这个错误信息的意思是ISO C++不允许将字符串常量转换为'char *',即不允许将一个字符串常量赋值给一个非常量的字符指针。这是因为字符串常量是只读的,而非常量的字符指针可以修改其指向的内存。为了避免这个错误,可以将字符指针声明为常量,或者使用const char *来表示字符串常量。
阅读全文