问题标签 [allocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
2509 浏览

c++ - 如何使用 new 在结构中分配变量来过度分配内存?

所以我有几个结构......

...并且我想动态分配足够的空间,以便我可以在某些数据中“memcpy”,包括以零结尾的字符串。基本结构的大小显然是“1”(我假设它不能为零),派生的大小是 20,这似乎是有道理的(5 x 4)。

所以,我有一个大小为 29 的数据缓冲区,前 16 个字节是整数,其余 13 个字节是字符串。

如何为 pNewStruct 分配足够的内存,以便为字符串提供足够的内存?理想情况下,我只想去:

  • 在 pNewStruct 分配 29 个字节;
  • memcpy 从缓冲区到 pNewStruct;

谢谢,

0 投票
7 回答
1462 浏览

c++ - 从 void 指针缓冲区进行结构实例化

这是一些对我来说看起来很有趣的 C++ 代码,但我知道它有效。

定义了一个结构,在程序中我们使用 void 指针分配内存。然后使用分配的缓冲区创建结构。

这是一些代码

代码有更多的东西,但这就是它的要点。

我没有测试过这段代码,但我正在查看的代码已经过很好的测试,并且可以正常工作。但是怎么做?

谢谢。

编辑:修复了内存泄漏。

0 投票
4 回答
329 浏览

c - 指针分配数组

typedef struct { struct table **symbols; // 堆栈数组 int top; //顶部元素的索引 int size; //栈的最大大小 }stack;

在这里,我需要分配堆栈的符号数组,即“...”,但我无法弄清楚它的语法,请帮助:)

0 投票
13 回答
35029 浏览

c++ - 动态分配C结构?

我想动态分配一个 C 结构:

'offset' 和 'values' 都应该是数组,但它们的大小直到运行时才知道。

如何为我的结构和结构的数组动态分配内存?

0 投票
3 回答
8514 浏览

c - 如何在 C 中编写线程安全、高效、无锁的内存分配器?

如何在 C 中编写线程安全、高效、无锁的内存分配器?高效我的意思是:

  1. 快速分配和释放

  2. 最佳内存使用(最小浪费且无外部碎片)

  3. 最小的元数据开销

0 投票
2 回答
273 浏览

resources - 寻找资源管理/分配系统

我需要的是一个可以定义简单对象的系统(例如,一个“服务器”,可以有一个“操作系统”和“版本”字段,以及其他元数据(IP、MAC 地址等))。
我希望能够以安全的方式从系统请求对象,例如,如果我定义一个“服务器”,可以由 3 个客户端同时使用,那么如果 4 个客户端同时请求一个服务器时间,一个人将不得不等到服务器被释放。
此外,我需要能够以某种查询样式执行请求,例如allocate(type=System, os='Linux', version=2.6).

语言无关紧要,但 Python 是一个优势。

在过去的几天里,我一直在谷歌上搜索类似的东西,但一无所获,也许这种系统有一个更好的名字,我不知道。

有什么建议吗?

谢谢!

0 投票
4 回答
2599 浏览

c++ - 一个库强制我对 new/delete 进行全局重载!

我正在为一个大型闭源应用程序维护一个插件(实现为 dll)。这多年来一直运行良好。然而,随着其 SDK 的最新更新,供应商重载了全球运营商 new 和 delete。这给我带来了很多麻烦。发生的事情是我的插件分配了一个字符串。我将此字符串传递到一个静态链接库中,该库对其进行修改(更改它的长度,从而重新分配它)。我的应用程序崩溃。

原因当然是字符串存在于供应商分配的自定义堆上。静态链接库对此堆一无所知,并尝试在该内存上使用默认的 new/delete 运算符。繁荣。

现在的问题是:我怎样才能保持我的代码干净并避免使用供应商的运营商?没有条件预处理器宏。我无法避免包含有问题的标头,因为它包含我需要的插件多 2000 行代码。我无法将提供的分配器传递到另一个库,因为它没有为此提供任何机制。我已经向供应商提出了这个问题。我不知道我还能尝试什么?

附录:经过一番激烈辩论后,我设法说服供应商再次从下一版本的 SDK 中删除重载。我通过简单地破解当前的 SDK 并手动删除重载解决了我的直接问题。感谢此线程中的所有建议。它们充当了论据,并进一步“证明”了为什么重载首先是一个坏主意。

0 投票
1 回答
1873 浏览

dynamic - C Builder 6中按钮的动态分配?

我想做一个井字游戏。当我调整窗口大小时,我想在界面上显示更多按钮。从 3x3 到 4x4 等到 9x9 的矩阵,取决于我调整窗口大小的程度。我该怎么做呢?

我将为任何为我提供有效答案的人制作免费的网站设计(以及完整的井字游戏程序的额外内容)。

谢谢!

0 投票
2 回答
3121 浏览

java - Java 对象创建和内存大小

我试图了解使用new运算符创建 Java 对象时将分配的大小。

考虑到我正在创建一个类

当我创建NewClassusing的实例时NewClass nc = new NewClass();NewClass在堆中创建的大小是多少?

~ 杰根

0 投票
2 回答
404 浏览

c++ - 查找内存分配错误

我在以下简化代码中遇到内存分配错误(以及随后的崩溃):

(1) 或 (2) 发生。

现在,如果我不考虑错误(使用调试器)继续继续,则该值确实已输入到映射中。

我不知道 ReadFromFuncThatMayBeProblem() 是否是罪魁祸首,但这是一个相当复杂的函数,我无法在此详述。

此外,这是在应用程序的其他部分被移植到使用 OpenSSL 之前已经工作(或至少看起来工作)的代码。不过,我不知道这是否会对这里产生任何影响。

那么,我可以做些什么来追踪这个分配错误,因为我假设上面的代码实际上不是问题?

编辑:更多信息:MyType 没有 dtor。

但是,MyType 有一个 SecondType 类型的成员,它有一个 void* 成员。这在该类型的析构函数中被删除并为空。构造函数使用 m_pData = new std::wstring( ( (std::wstring )source.m_pData) ); 对于字符串。(其他数据类型也类似)。这可能是个问题吗?(删除 static_cast< std::wstring* >( m_pData );)

MyType 的其他成员类型是 std::wstring、unsigned long、bool、enum、structs(其中包括 timeb)和 SecondType。