C++のベクタに問題があります。私は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));
そしてメインの途中で私がtrytingています
grupo->vertices.push_back(x);
ただし、プログラムをクラッシュさせてしまいます。私は、ビジュアルスタジオを使用して、デバッグモードを使用しています。私はそれがクラッシュするベクトルにXを押していることがわかります(xは値を持っています)。私は浮動小数点数の配列にベクトルを変更しようとしました。だから私が想像できる問題は、ベクトルの初期化である...私は何が欠けているのを助けることができますか?
ありがとうございます。
この質問は[c]についてのものではありませんので、タグ付けしないでください。 –
@AnttiHaapalaあなたは正しいです、それについては残念です。 –
あなたの変数が構造体と同じ名前を持っているのは非常に混乱しています。 –