c++ - 为什么将字符串放入结构中会导致崩溃?

标签 c++ string struct

<分区>

我有一个结构,其中包含几个字符串。

struct item {
    string item_name;
    int item_property_1;
    double item_property_2;
}

稍后我初始化它们:

item item1;
item1.item_name = "Name of Item";
item1.item_property_1 = 5;
item1.item_property_2 = 10.0;

如果我注释掉分配字符串的行,它运行正常。使用字符串分配,它会崩溃。我不知道为什么。

我现在已经注释掉了所有其他函数的内容,试图找出可能导致建议损坏的原因,但它仍然崩溃。我只剩下一个包含几个字符串和数字的结构,如果我为其中任何一个字符串赋值,它就会崩溃。

什么会导致腐败?

edit 根据请求添加最少量的导致崩溃的实际代码。省略注释掉的部分。

struct player_c {
        string advClass;
        int role;
};

player_c shadow;

Shadow::Shadow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Shadow)
{
    ui->setupUi(this);
    shadow.advClass = " ";
    shadow.role = 1;
}

剩下的就是这些了。我只包括 int 来测试和验证为其分配一个值是否正常,只要字符串被注释掉它就可以。在结构中使用任何字符串都会导致崩溃。

我在那里不需要它们。我目前没有使用这些字符串,我将它们放在结构中是因为我打算稍后使用它们,但没有它们我也可以实现相同的目的。现在我只想了解原因。

最佳答案

该代码是完全合法的。错误出在您的其他部分代码中。

关于c++ - 为什么将字符串放入结构中会导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735176/

相关文章:

c++ - 查找 C++ 中回文的数量

c - strftime 和 struct tm 中的两位数日期

Swift:通用协议(protocol)

c# - 使用 char 数组编码异常

c++ - 我应该在 C++ 字符串文字上使用 _T 还是 _TEXT ?

c++ - 从迭代器中获取索引处的元素

C++打印奇怪的字符

c - C 中用字符串初始化的静态 char 数组

c# - 如何替换 C# 中的特定单词?

c++ - 浮点运算的最佳实践