为什么char*Name="string";不在C++中工作?
当我编写如下函数并在 中使用它时main(),它不起作用。
为什么会发生这种情况?(我是初学者)。
void addBst(char *name, char *num);
int main(void)
{
addBst("a", "b");
return 0;
}
回答
在 C++ 中,字符串文字是一个const char[N]数组,其中N是字符串的长度,包括空终止符。
从 C++11 开始,将字符串文字分配给非常量char*指针是非法的,就像您的代码所做的那样。你需要使用一个const char*指针,例如:
void addBst(const char *name, const char *num);