我在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有一个值)。我试图将向量更改为浮点数数组。所以我可以想象的问题是向量的初始化...您能帮我解决一下吗?
谢谢 :)
由于您使用的是C ++;如果要grupo
动态创建,则应使用new
带有构造函数的运算符:
grupo = new grupo();
malloc
不能正确初始化C ++对象,例如std::vector
。
PS我不确定grupo->modelos
和grupo->grupos
应该是什么,但是我会为它们使用适当的C ++类型(也许modelos
应该是std::string
,等等)。此外,我怀疑你有一个*
太多都modelos
和grupos
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句