我在 C++ 中遇到向量问题。我是 C++ 新手,所以请记住这一点。
所以我在我的程序开始时有以下结构:
typedef struct grupo
{
float transX, transY, transZ, rotX, rotY, rotZ, rotAngle, scaleX, scaleY, scaleZ;
char **modelos;
struct grupo** grupos;
int nNomes = 0, nGrupos=0;
std::vector<float> vertices;
};
struct grupo *grupo;
我只是这样开始主要的:
grupo = (struct grupo*)malloc(sizeof(struct grupo));
grupo->modelos = (char **)malloc(sizeof(1));
grupo->grupos = (struct grupo **)malloc(sizeof(struct grupo));
在 main 的中间,我正在尝试使用它:
grupo->vertices.push_back(x);
但它不断使程序崩溃。我正在使用 Visual Studio,并使用调试模式。我可以看到这是将 X 推到崩溃的向量时(x 有一个值)。我试图将向量更改为浮点数组。所以我能想象的问题是向量的初始化……你能帮我解决我错过的问题吗?
谢谢 :)
原文由 Peter L. 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您使用的是 C++;如果你想动态创建一个
grupo
,你应该使用new
操作符,构造函数:malloc
没有正确初始化 C++ 对象,例如std::vector
。PS我不确定
grupo->modelos
和grupo->grupos
应该是什么,但我会为它们使用适当的C++类型(也许modelos
std::string
等)。此外,我怀疑你有一个*
太多modelos
和grupos
。