我在尝试在结构中设置字符串时遇到问题,下面是我的代码:
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;
关于C++错误通过指针在结构中设置字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305445/