当前位置:  开发笔记 > 编程语言 > 正文

为List内部结构分配空间

如何解决《为List内部结构分配空间》经验,为你挑选了1个好方法。

我的结构如下:

struct Vertex{
      list q;
};

我创建了一个大小为10的数组,如下所示:

Vertex *ver = (Vertex*) malloc(10 * sizeof(Vertex));

现在我想在列表中插入.我很难搞清楚为什么会出现分段错误:

ver[1].q.push_back(10);

有人可以解释这里有什么问题吗?



1> Bo Persson..:

malloc只是分配内存,它不会在该内存中构造任何对象.

你可以尝试

Vertex* ver = new Vertex[10];

初始化Vertex结构及其list成员.

创建10个Vertex对象的更简单方法是

std::vector  ver(10);

这也使您免于delete[]以后使用对象的麻烦.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有