我在尝试在结构中设置字符串时遇到问题,下面是我的代码:

struct movieNode
{
  string name;
};

int main()
{
    struct movieNode* newMovieNode = (struct movieNode*)malloc(sizeof(movieNode));
    newMovieNode->name = "123";
}

运行此命令时,将显示以下消息:

“Trabalho.exe中0x5EDB11E2(msvcr110d.dll)处未处理的异常:0xC0000005:访问冲突写入位置0xCDCDCDCD。

有人可以帮我解决这个问题吗?

非常感谢。

最佳答案

您为movieNode分配了内存,但是没有构造它。请改用new。同样,在C++中,不需要详细的类型说明符。

movieNode* newMovieNode = new movieNode;

10-08 02:42