C++错误通过指针在结构中设置字符串

标签 c++ string pointers struct

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

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/

相关文章:

c++ - 将模板函数传递给另一个模板函数

c++ - 使用 clang 的 QT header 中的错误

iphone - objective-c : Create arrays from first array based on value

c - 为什么指向 Char 的指针并不总是需要 Malloc?

c - C中指向数组赋值的指针

C++:无法在初始化列表中找到错误编译正常但在启动时导致崩溃

c++ - 片段着色器是否处理来自顶点着色器的所有像素?

python - 如何打印字符串中重复的一个字母?

string - 我如何从 python 中的一组单词中寻找最短的唯一子序列?

c - 使用双指针对字符串中的字母进行排序