D:\ChenMingCan\CMC_Project\qt\UpComputerCommunicationProcessing\mainwindow.cpp:1582: error: C2440: “初始化”: 无法从“const char [11]”转换为“char *”
时间: 2023-08-12 12:04:52 浏览: 118
通过string转换比较好些,很多重载函数要么是char * ,要么是String
这个错误是由于你尝试将一个常量字符转换为字符指针导致的。在C++中,常量字符数组(const char array)不可以直接赋值给字符指针(char pointer),因为常量字符数组的地址是不可修改的。
为了解决这个问题,你可以将常量字符数组的内容复制到一个字符数组中,然后将该字符数组的指针传递给需要的函数或变量。或者,你可以将需要接受字符指针的函数或变量声明为接受常量字符指针(const char pointer)。
例如,如果你有以下代码:
```cpp
const char errorMessage[] = "Error message";
char* errorPtr = errorMessage; // 这里会导致上述错误
```
你可以将其修改为:
```cpp
const char errorMessage[] = "Error message";
char errorBuffer[sizeof(errorMessage)];
strcpy(errorBuffer, errorMessage);
char* errorPtr = errorBuffer; // 使用复制后的字符数组的指针
```
或者,如果函数或变量可以接受常量字符指针,你可以将其修改为:
```cpp
const char errorMessage[] = "Error message";
const char* errorPtr = errorMessage; // 使用常量字符指针
```
阅读全文