草庐IT

MALLOC_MMAP_THRESHOLD

全部标签

c++ - 使用 malloc 安全吗?

有人告诉我使用malloc进行分配不再安全,我不是C/C++高手,但我已经使用malloc和C/C++做了一些东西。有谁知道我面临的风险是什么?引用他的话:[..]ButindeedtheweakpointofC/C++itisthesecurity,andtheAchilles'heelisindeedmallocandtheabuseofpointers.C/C++itisawellknowninsecurelanguage.[..]TherewouldbefewappsinwhatIwouldnotrecommendtocontinueprogrammingwithC++."

c++ - 用于 C++(或 C)的 mmap 可加载数据结构库

我有一些大型数据结构(N>10,000),通常只需要创建一次(在运行时),之后可以多次重用,但需要非常快速地加载。(它用于iPhoneOS上的用户输入处理。)mmap-ing文件似乎是最佳选择。是否有适用于C++(或C)的数据结构库?沿线的东西ReadOnlyHashTabletable("filename.hash");//mmap(...)insidethec'tor...intfreq=table.get('a');...//munmap(...);insidethed'tor.谢谢!详情:我自己写了一个类似的哈希表类,但是我发现它很难维护,所以我想看看是否已经有现有的解决方案。

c++ - 在启用 OpenCL 选项的情况下使用 Tesseract 时出现 malloc 错误

我在启用OpenCL选项的情况下编译了Tesseract3.04.00。在尝试使用GetUTF8Text()从图像中提取文本时,出现malloc错误,我想是内存泄漏。我找到了之前添加的针对内存泄漏错误的补丁,但是,我编译的版本已经添加了补丁。我不确定为什么会发生内存泄漏。这是我得到的输出:[DS]Profilereadfromfile(tesseract_opencl_profile_devices.dat).[DS]Device[1]1:Intel(R)Core(TM)i5-4250UCPU@1.30GHzscoreis14049349632.000000[DS]Device[2]1

c++ - 在 Visual C++ 中全局覆盖 malloc

我正在尝试找出一种在VisualC++(2005)中全局覆盖malloc和相关函数的方法。我的设置是一个带有静态链接运行时库的dll,它由我自己的c++代码、外部c++和c代码组成。我想要完成的是允许dll的用户设置他们自己的内存分配函数的实现。我无法使用的解决方案:全局覆盖new和delete,我的代码库中有很多外部C库,这意味着这不会捕获很多分配。#将malloc定义为不同的符号。这将迫使我将此定义推送到所有使用的外部库的build设置中,我真的想避免这种情况。我不关心的事情:如果任何外部库正在以其他方式分配内存(HeapAlloc、内存映射文件或它们提出的任何其他方式),我承认无

c++ -::operator new(size_t) 是否使用 malloc()?

::operatornew(size_t)是在内部调用malloc(),还是直接使用系统调用/操作系统特定的库调用?C++标准怎么说?在thisanswer它说:malloc()isguaranteedtoreturnanaddressalignedforanystandardtype.::operatornew(n)isonlyguaranteedtoreturnanaddressalignedforanystandardtypenolargerthann,andifTisn'tacharactertypethennewT[n]isonlyrequiredtoreturnanaddr

c++ - 我想制作自己的 Malloc

我想制作自己的malloc/free,这样我就可以制作一个精确的复制分配器。有哪位大师有什么提示和建议吗?我现在有几个问题:我是否应该只malloc大块内存,然后从中分配内存,这样我就不必调用系统调用?抄袭收藏家通常是如何完成的?我想这部分要有效地完成有点复杂。我天真的实现只是malloc剩余对象大小的block,这将需要2倍的空间。 最佳答案 有很多关于实现malloc和类似事物的优秀文献。但我注意到您在此处包含了C++——您是否知道可以使用C++编写您自己的new和delete实现?这可能有助于轻松完成此操作。无论如何,您想要的

动态内存分配:malloc、calloc、realloc(超详解析,多维度分析,小白一看就懂!!!!)

目录一、前言二、动态内存的简单介绍🍉什么是动态内存分配🍎为什么要使用动态内存分配 三、动态内存函数的介绍和拓展 🍋malloc()函数 🍊free()函数 🍌calloc()函数🍇realloc()函数四、常见动态内存分配的错误五、共勉一、前言在学习动态内存分配时,感觉这些动态分配没什么用,也就没在意跳过去了,直到碰到数据结构和一些需要动态数组的题目时才知道,动态内存分配的重要性。这次专门花了一早上的时间来学习了动态内存分配,并将它分享出来,希望对大家有帮助哦!!!!二、动态内存的简单介绍🍉什么是动态内存分配知识点1:🔑目前在我们平时写代码的过程中接触最多的就是在栈空间上开辟连续的空间://在

c++ - 为什么 malloc/new 捕获调用堆栈?

我有一个在Server2003下作为服务运行的64位应用程序。当我附加VSProfiler或windbg时,我看到很多调用堆栈,如下所示。我知道调试器(或探查器)中产生的进程使用调试堆等...但情况并非如此,因为该服务是由操作系统启动的,而我只是附加到它。我不明白为什么要展开堆栈。探查器显示这样做花费了可测量的时间。更多信息:•这些是使用vc9构建的版本位,在Server2003上运行。•系统环境变量_NO_DEBUG_HEAP设置为1。•我正在使用Microsoft符号服务器。为什么要捕获堆栈跟踪?它似乎正在记录它..但我找不到位置。我的目标是验证应用程序是否真的展开堆栈,如果是这样

c++ - 为什么 malloc 总是返回 NULL

我的开发环境是VS2008、DX9、WindowsXP。我尝试为内存不足的情况添加保护处理。当malloc返回NULL时,我会将一些资源分页到磁盘,然后释放内存中的资源。但有时,malloc总是返回NULL,即使我释放了大部分资源和进程内存使用并且VM大小在任务管理器中只有800MB。我认为使用malloc分配88字节应该没问题,其中进程内存使用量仅为800MB。但是malloc总是返回NULL。这会不会是内存碎片?它看起来不像那样,因为进程内存使用量不是太多。alttexthttp://i.imagehost.org/0267/Snap2.jpg 最佳答案

c++ - 如何解决 Windows 10 "Threshold 2"更新(1511,内部版本 15086)后应用程序无法启动并出现 STATUS_DLL_INIT_FAILED (0xc0000142)

我们发布了一个Windows桌面应用程序(使用VisualC++2013和v120_xp平台工具集构建),它在Windows10上运行良好,但我们已经开始收到安装了我们应用程序的“Threshold2”更新的用户的报告现在无法启动,显示以下错误消息:Theapplicationwasunabletostartcorrectly(0xc0000142).ClickOKtoclosetheapplication.错误代码是STATUS_DLL_INIT_FAILED,所以我们大概是在寻找初始化失败的DLL。我们已尝试通过观察在调试器中启动的应用程序并使用进程监视器查看正在加载哪些DLL来解