编译器告诉我"char*赋值给char [32]的不兼容类型"这是我的代码:
char* generalOperations[2]={"Off","On"};
void test(){
char value[32];
switch(swapVariable){
case 0:
value=generalOperations[0]; //<==Error HERE!
break;
}
}
Run Code Online (Sandbox Code Playgroud)
[解决了]:
strcpy(value,generalOperations[0]);
Run Code Online (Sandbox Code Playgroud)
使用std::string替代char*和std::array<T, N>取代T[N].两者都是类型安全的(相对于memcpy),两者都是现代C++风格,并且都可以使用赋值运算符直接赋值.
#include <array>
#include <string>
std::array<std::string, 2> generalOperations{"Off", "On"};
void test() {
std::string value;
switch(swapVariable) {
case 0: value = generalOperations[0]; break;
}
}
Run Code Online (Sandbox Code Playgroud)