我有两个结构 ITEM 和 TABLE,其中一个包含另一个,即 TABLE 包含许多项目。我使用此代码来创建结构和表和项目。
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
struct ITEM {
std::string itemTitle;
};
struct TABLE {
std::string tableName;
int num;
ITEM* items;
};
TABLE setTABLE(std::string, int num) {
struct ITEM* item = (struct ITEM*) malloc(sizeof(struct ITEM) * num);
TABLE table = {tableName, num, item};
return table;
}
int main() {
std::vector<TABLE> tables;
tables.push_back(setTABLE("TEST", 3));
tables[0].items[0].itemTitle = "TestItem";
std::cout << tables[0].items[0].itemTitle << "\n";
return 0;
}
我想将 ITEM 的 itemTitle 设置在位置 0,但是当我计算出结果时,我得到了
Segmentation fault: 11
我猜 malloc 还不够吗?还是我的代码结构一开始就被误解了?我想要实现的是构建一个自定义的表结构。