char* argv[3] = { "program_name", "192.168.", "5555", "./mixer" }; 语法错误,如何纠正,提示: C2440: “初始化”: 无法从“const char [13]”转换为“char *”
时间: 2023-11-25 12:06:20 浏览: 43
通过string转换比较好些,很多重载函数要么是char * ,要么是String
这个错误是因为字符串字面值是常量,但是在这个代码中,将它们赋值给了一个非常量的指针。为了解决这个问题,可以将指针声明为指向 `const` 字符的指针,或者将字符串字面值转换为 `char*` 类型的字符串。以下是两种纠正方法:
将指针声明为指向 `const` 字符的指针:
```c++
const char* argv[4] = { "program_name", "192.168.", "5555", "./mixer" };
```
将字符串字面值转换为 `char*` 类型的字符串:
```c++
char ip[] = "192.168.";
char port[] = "5555";
char mixer[] = "./mixer";
char* argv[4] = { "program_name", ip, port, mixer };
```
这两种方法都可以解决这个问题,具体采用哪种方法取决于代码的需求和风格。
阅读全文