堆上的分配和碎片

时间:2017-09-03 16:53:21

标签: c++ pointers memory-management heap-memory

我需要在堆上分配一个复杂的结构。它由一些基本类型和自定义对象组成。这些自定义对象由一些基本类型和一些其他自定义对象组成。这些自定义对象由一些基本类型和一些其他自定义对象组成,et cetara等等......

我一直在做的方法是将基本类型存储为自动变量,同时制作自定义对象(智能)指针。

但是,由于主对象是作为(智能)指针创建的,所有这些都是在堆上分配的,不是吗?但每次我使用另一个(智能)指针时,它会进行另一次分配并对内存进行分段,对吗?

所以我不应该使用指针,除了那个最初的指针要把它放在堆上,不是吗?所有具有可变大小的对象都将可更改的部分存储在地图或矢量中,这些部分会自行分配内容,但此时,这是必要的,因为我不知道有多少,如果任何,都会有。

无论如何,我这样思考是对的吗? 指针的使用越少越好?

1 个答案:

答案 0 :(得分:0)

从设计的角度使用更有意义的东西。

如果结果是缓慢(无论如何都可能不会),请分析并优化瓶颈。