小编Mak*_*bex的帖子

从堆列中获取数组而不分配堆

我有一个列表,我想将其数组分配给一个属性.

public void BuildMesh(List<Vector3> list){
    mesh.vertices=list.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

现在的问题:

  • 该项目是游戏,并且在垃圾收集方面非常困难,因此ToArray()的默认实现不是一个选项,因为它在列表的内部数组旁边创建了一个新数组.
  • 网格对象来自闭源API,顶点属性是Vector3 [],因此无法为其指定指针.

我有任何阻止堆分配的选项吗?

编辑:这不是重复

不能用IList<Vector3>.网格来自一个封闭的源API,需要Vector3 []所以我无法分配IList<Vector3>它.

c# heap pointers unity-game-engine data-structures

6
推荐指数
1
解决办法
1314
查看次数

从偏移中删除数组

假设我分配了一组int

int test[] = new int[100];
Run Code Online (Sandbox Code Playgroud)

我把指针指向中间的某个地方

int *temp = &test[50];
Run Code Online (Sandbox Code Playgroud)

然后我在temp上调用delete []

delete[] temp
Run Code Online (Sandbox Code Playgroud)

在这种情况下,编译器如何知道要删除的元素的大小?

c++ delete-operator

2
推荐指数
1
解决办法
249
查看次数

C++ Native to Intermediate

理论上和/或实际上是否可以将本机c ++编译成某种中间语言,然后在运行时编译?

沿着同样的路线,"便携式"这个术语用来表示这个吗?

c++

1
推荐指数
1
解决办法
140
查看次数