堆的分配和分裂
Allocation and fragmentation on the heap
我有一个复杂的结构,我需要在堆上分配。它由一些基本类型和自定义对象制成。这些自定义对象是由一些基本类型和其他一些自定义对象制成的。这些自定义对象是由一些基本类型和其他一些自定义对象制成的,例如et cetara等...
我一直这样做的方式将基本类型存储为自动变量,同时制作自定义对象(智能)指针。
但是,由于主要对象是作为(智能)指针创建的,因此所有这些都被分配在堆上,不是吗?但是,每当我使用另一个(智能)指针时,它会执行另一个分配并片段片段,对吗?
所以我不应该真正使用指针,除了那个初始的指针以将其放在堆上,不是吗?所有具有变化尺寸的对象都有存储在地图或向量的可变零件,这些零件会自行分配内容,但是在这一点上,无论如何,这都是必要的,因为我不知道有多少(如果有的话)会有。
无论如何,我是正确的吗?指针的使用越少,
从设计的角度使用更有意义的任何东西。
如果事实证明是放慢的(无论如何它可能不会),请配置并优化瓶颈。
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 为什么我可以使用比分配的内存更多的内存
- 堆的分配和分裂