gpt4 book ai didi

c# - 在 C# 中获取内存中下一个对象大小的空间

转载 作者:行者123 更新时间:2023-11-27 23:12:09 25 4
gpt4 key购买 nike

我有一个类 class1,并且有一个用 C++ 定义的函数:

class1 GetNextObject(class1 x) 
{
return (x + sizeof(x));
}

所以这给出了内存中的下一个 block 类型转换为 class1。我如何在 C# 中执行此操作?我需要将下一个空间 block 作为 class1 类型返回。

最佳答案

您不能在 C# 中这样做,因为您无法控制您的类型占用的 block 空间。当 GC 试图对垃圾收集后出现的内存空间进行碎片整理时,它会在您机器的内存空间中四处移动。

而且,这不是您打算用 C# 语言(或基本上任何其他 CLR 语言)做的事情。如果您需要深入控制内存消耗和/或内存高级操作,请坚持使用 C++

Instead of expecting an array of class1 objects as argument, the C++ function just takes a single object and return the next space in memory

这不是你在 C# 中需要担心的事情:

  • 你创建,比方说,列表
  • 添加/删除值。

内存的管理方式不是您知道或担心的事情,即使您知道,也不是您可以控制的事情,可能也可能会发生变化(取决于微软架构师)。

关于c# - 在 C# 中获取内存中下一个对象大小的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com