问题标签 [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 投票
4 回答
3878 浏览

c++ - 为什么我的新操作员不叫

我想看看一个动态加载的库(用 dlopen 等加载)真的使用它自己的新的删除操作符,而不是调用程序中定义的这些操作符。所以我写了以下 library.cpp

并用

或作为受雇俄罗斯人建议尝试(但最终没有任何改变)

Base 类只保存一个 int 值和一个函数 get_value() 来获取这个值。之后我像这样写了client.cpp

并用

执行客户端我只得到一个“新的客户端调用”和一个“删除客户端调用”。即使我像 Employed Russian 建议的那样为库使用编译器开关 -Bsymbolic。

现在:出了什么问题?我认为共享库正在使用他们自己的 new/delete,因此您必须在工厂旁边提供在库代码中创建析构函数销毁。

补充问题:为什么我需要 destroy(Base* p) 函数?如果这个函数只调用客户端的delete-operator,我也可以自己做,即“delete a”而不是最后一行的destroy_module(a)。

我找到的答案:该库还可以提供一个新/删除操作符对。因此,如果我首先使用库的新功能,然后使用客户端的删除功能,我可能会陷入陷阱。可悲的是,直到现在我从未见过我的图书馆使用它自己的新图书馆或删除图书馆......所以最初的问题仍然没有得到回答。

补充:我只指Linux平台。

编辑:重要部分在“雇佣俄罗斯人的回答”的评论中。所以我简而言之给出主要线索:如果有人以这种方式调用 gcc

该库将使用它自己的新/删除运算符。否则结果

在使用调用程序的新/删除运算符的库中。感谢受雇的俄罗斯人!

0 投票
3 回答
485 浏览

c++ - c++内存分配问题

我试图创建一个数组: int HR[32487834]; 这不只占用大约 128 - 130 兆字节的内存吗?我正在使用 MS c++ Visual Studios 2005 SP1,它崩溃并告诉我堆栈溢出。

0 投票
3 回答
636 浏览

c++ - 给定一个数组,是否有一种算法可以从中分配内存?

我正在做一些图形编程,我正在使用顶点池。我希望能够从池中分配一个范围并将其用于绘图。

我需要的解决方案与 C 分配器的不同之处在于我从不调用 malloc。相反,我预先分配了数组,然后需要一个对象来包装它并跟踪可用空间并从我传入的分配中分配一个范围(一对开始/结束指针)。

非常感谢。

0 投票
15 回答
95419 浏览

c - 确定 C 中动态分配内存的大小

C中有没有办法找出动态分配内存的大小?

例如,之后

有没有办法找出与之相关的内存大小p

0 投票
4 回答
1219 浏览

java - Java 内存分配性能(SunOS 与 Windows)

我有一个非常简单的单元测试,它只分配了很多字符串:

在我的 Windows PC(Intel Core Duo,2.2GHz,2GB)上,平均打印如下:

在 SunOS(5.10 Generic_138888-03 sun4v sparc SUNW、SPARC-Enterprise-T5120)上:

两台机器上的 JDK 版本都是 1.4.2_18。JVM参数相同,分别是:

谁能解释为什么 SUN 超级服务器速度较慢?

( http://www.sun.com/servers/coolthreads/t5120/performance.xml )

0 投票
1 回答
234 浏览

filesystems - 如何确定 NTFS 磁盘上的分配块

有没有办法确定在 NTFS 磁盘上分配了哪些集群?在您启动碎片整理本身之前,我正在按照您在碎片整理程序上看到的显示方式进行思考。

我想你可以解析 MFT,但让我感到震惊的是,在一个可能有数十万个文件的系统上,这可能需要很长时间。

谢谢

0 投票
2 回答
299 浏览

c - 行未知时网格的 C 动态分配

我正在尝试在 C 中分配一个 char* 数组。我事先知道列数,但不知道行数,我想在需要时分配行。

我尝试使用:

现在,上面的行应该分配给 data[0] ...对吗?那么,我必须能够像这样使用行

我遇到了段错误。我无法理解这里出了什么问题。谁能帮忙。

0 投票
4 回答
3853 浏览

algorithm - 证明福勒的货币分配算法是正确的

Martin Fowler有一个 Money 类,它有一个货币分配例程。此例程根据给定的比率列表分配资金,而不会因四舍五入而损失任何价值。它将任何剩余值分布在结果上。

例如,按“比率”(1、1、1)分配的 100 美元将产生(34 美元、33 美元、33 美元)。

这是allocate功能:

(为了这个问题,为了简单起见,我冒昧地将 Money 类型替换为 long。)

问题是,我怎么知道它是正确的?除了最后的 for 循环之外,这一切似乎都是不言而喻的。我认为要证明函数是正确的,在最终的 for 循环中证明以下关系是正确的就足够了:

谁能证明这一点?

0 投票
7 回答
3976 浏览

c - 自定义 malloc() 实现头设计

我正在尝试在 C 中编写用于调试目的的自定义分配器(作为练习),其中我将使用单个链表使用 First Fit 算法将内存的空闲列表保持在一起。我在下面显示了我想在“空内存节点”中创建的结构。

我如何在我获得的内存的前几个字节处写入头块(具体来说是一个联合)(我使用 malloc() 来最初获取一块内存),以便剩余的字节是空闲的?

这是我正在使用的工会:

[编辑] 根据提供的建议更改了块结构。

0 投票
2 回答
1340 浏览

iphone - iPhone 应用程序在启动和关闭 MFMailComposeViewController 后滞后

我有一个使用表格视图控制器来显示一些项目的应用程序,在单击其中一个项目后,您可以选择通过电子邮件发送该项目。一旦发生这种情况,我使用苹果“MailComposer”提供的代码,并发送邮件。然而,在此之后,表格视图中的滚动不像以前那么平滑。

我检查了“泄漏”,我的代码中没有泄漏,但是当 MFMailComposeViewController 的模态视图控制器和当我关闭我的控制器时,所有对象分配仍然存在。我怎样才能摆脱所有的对象分配?任何帮助将不胜感激。谢谢你。

-奥斯卡

更新:

我已经意识到只有在您单击 MFMailComposeViewController 上的 To: 文本字段并输入内容后才会发生延迟,一旦输入内容就会出现内存泄漏并且应用程序会运行缓慢。同样的事情也发生在 Apple 的 Mail Composer 中。我正在使用模拟器也许这就是为什么?其他人有类似的经历吗?

我按下控制器的方式是:

并在这里忽略它: