22 76 D:\C语言\C语言课后作业\实验13.5.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
时间: 2024-03-04 12:53:25 浏览: 19
这个编译警告是因为在代码中使用了字符串常量赋值给了 `char*` 类型的指针变量,而字符串常量是只读的,不能被修改。正确的做法是将指针变量声明为 `const char*` 类型,例如:`const char* str = "hello";`。如果确实需要在程序中修改字符串,可以使用字符数组来代替指针,例如:`char str[] = "hello";`。
相关问题
char *name[]={"tianjin","taiyuan","beijing","shanghai","tianjin","beijing"};显示21 76 D:\C语言\C语言课后作业\实验13.5.cpp [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
这个警告是因为你在定义 `char *name[]` 数组时,使用了字符串常量来初始化数组元素。在 C 语言中,字符串常量是只读的,不能被修改。所以,编译器会发出警告,提示你可能会误用这些字符串常量。
为了避免这个警告,你可以将 `char *name[]` 数组改为 `const char *name[]`,表示其元素是只读的字符串常量。代码如下:
```
const char *name[]={"tianjin","taiyuan","beijing","shanghai","tianjin","beijing"};
```
这样修改后,编译器就不会再发出警告了。
warning:deprecated conversion from string constant to 'char *' 解决方案
这个警告信息是因为编译器发现你将一个字符串字面量赋值给了一个非常量的指针变量。因为字符串字面量是只读的,所以在某些情况下,这可能会导致不可预测的行为。为了避免这个警告,你应该将指针变量声明为指向常量的指针,或者使用 strcpy() 函数将字符串字面量复制到一个非常量的字符数组中。示例代码如下:
```
const char *str = "Hello, world!"; // 指向常量的指针
char str2[] = "Hello, world!"; // 非常量字符数组
char *str3 = new char[strlen("Hello, world!") + 1]; // 动态分配内存
strcpy(str3, "Hello, world!"); // 复制字符串
delete[] str3; // 释放内存
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)