加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在c中初始化结构中的向量

发布时间:2020-12-16 10:12:38 所属栏目:百科 来源:网络整理
导读:我在c中遇到了矢量问题.我是c的新手,所以请记住这一点. 所以我在我的程序开始时有以下结构: typedef struct grupo{ float transX,transY,transZ,rotX,rotY,rotZ,rotAngle,scaleX,scaleY,scaleZ; char **modelos; struct grupo** grupos; int nNomes = 0,nGr
我在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));

在主要的中间我试图使用这个:

grupo->vertices.push_back(x);

但它一直在破坏程序.我正在使用visual studio,并使用调试模式.我可以看到将X推送到崩溃的向量时(x有一个值).我试图将矢量更改为浮点数组.所以我能想象的问题是矢量的初始化……你能帮我解决一下我错过了什么吗?

谢谢 :)

解决方法

因为你正在使用C;如果你想动态创建一个grupo,你应该使用new运算符和构造函数:

grupo = new grupo();

malloc没有正确初始化诸如std :: vector之类的C对象.

附:我不确定grupo-> modelos和grupo-> grupos应该是什么,但我会为它们使用适当的C类型(也许modelos应该是std :: string等).另外,我怀疑你的模型和grupos都有一个*太多了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读