为什么 char* Name = "string"; 不在 C++ 中工作?

-2 c++

当我编写如下函数并在 中使用它时main(),它不起作用。

为什么会发生这种情况?(我是初学者)。

void addBst(char *name, char *num);

int main(void)
{
    addBst("a", "b");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 5

在 C++ 中,字符串文字是一个const char[N]数组,其中N是字符串的长度,包括空终止符。

从 C++11 开始,将字符串文字分配给非常量char*指针是非法的,就像您的代码所做的那样。你需要使用一个const char*指针,例如:

void addBst(const char *name, const char *num);
Run Code Online (Sandbox Code Playgroud)