【问题标题】:Why would you use pointers for Low Memory Allocation? [closed]为什么要使用指针进行低内存分配? [关闭]
【发布时间】:2017-05-15 01:06:30
【问题描述】:

所以我在查看虚幻引擎的源代码时遇到了这个:

class USphereComponent* CollectionSphere;

有些东西会在游戏开始时被初始化和生成一次,并且一些对象会重叠,我认为指针主要用于更多的中高内存分配目的 那么他们为什么现在使用它呢?

请记住,我并不擅长指针,所以我只是尝试学习并收集一些有关它的信息。

【问题讨论】:

  • 在没有更多上下文的情况下无法完全回答。您可以在任何地方分配指针。只要小心并尽可能使用容器或智能指针。
  • 您还需要了解什么?
  • 回到球赛有点晚了。对于那个很抱歉。通过更多上下文,我需要了解程序员如何使用CollectionSphere。 Orbit 中的 Lightness Races 可能是正确的,但另一种可能性是程序员可能没有足够的信息(有多少、哪个多态实例、哪些构造函数参数等)来初始化对象。通过查看对象是如何初始化和使用的,我们可以消除一些干扰。但归根结底,我们只是在猜测程序员的意图。据我们所知,使用指针可能是一个错误。

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


【解决方案1】:

是否使用指针几乎与“低”或“中高内存分配目的”无关。

当你需要一个指针时,你会使用一个指针,通常这就是 pointee(被指向的东西)比任何现有程序中的“自动”对象寿命更长的时候,方便访问的范围。

基本上,*CollectionSphere 将是一个全局的(或类似的),但我们不能立即构造它。作者决定他们需要对对象的生命周期进行精细控制。因此,他们创建了一个指针,以便在时机成熟时指向该对象。

【讨论】:

猜你喜欢
  • 2010-09-14
  • 1970-01-01
  • 2018-03-03
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多