C中的MemAlloc是什么?它与malloc有何不同?

C中的MemAlloc是什么?它与malloc有何不同?,c,memory-management,C,Memory Management,我曾多次面对这个问题,但我对此一无所知。我搜索了很多网站。我收集的信息是: MemAlloc是一个空闲内存分配工具。它允许您通过请求所需的任意内存量来对Windows操作系统进行压力测试 void*Memalloc(ulong大小,int标志) 在OllyDbg的上下文中分配内存。请求被重定向到GlobalAlloc()。使用它来分配更大的内存块。调用Memfree()以释放此内存` 这些信息并不能回答我的疑问,我对这个概念还不是很清楚。如果您能描述一下memalloc的用途,我将不胜感激 我还

我曾多次面对这个问题,但我对此一无所知。我搜索了很多网站。我收集的信息是:

MemAlloc是一个空闲内存分配工具。它允许您通过请求所需的任意内存量来对Windows操作系统进行压力测试

void*Memalloc(ulong大小,int标志)

在OllyDbg的上下文中分配内存。请求被重定向到GlobalAlloc()。使用它来分配更大的内存块。调用Memfree()以释放此内存`

这些信息并不能回答我的疑问,我对这个概念还不是很清楚。如果您能描述一下memalloc的用途,我将不胜感激

我还有一个问题:如果它是内存分配工具,那么malloc和memalloc之间有什么区别

OllyDbg是针对Microsoft®Windows®的32位汇编级分析调试器。对二进制代码分析的强调使得它在源代码不可用的情况下特别有用

这是一个调试库,包含内存分配方法,如
Memalloc
,它能够检测内存泄漏。Memalloc在我看来就像Windows上的包装器
GlobalAlloc

那么
malloc
有什么区别呢?这是未知的,但在我看来,它并没有像大多数malloc实现那样快,因为它使用相对过时的
GlobalAlloc
,而大多数malloc实现使用
VirtualAlloc
分配大块

请参阅MSDN对GlobalAlloc的说明:

注意:与其他内存管理功能相比,全局函数的开销更大,提供的功能更少。新的应用程序应该使用堆函数,除非文档说明应该使用全局函数。有关详细信息,请参见全局和局部函数

OllyDbg是针对Microsoft®Windows®的32位汇编级分析调试器。对二进制代码分析的强调使得它在源代码不可用的情况下特别有用

这是一个调试库,包含内存分配方法,如
Memalloc
,它能够检测内存泄漏。Memalloc在我看来就像Windows上的包装器
GlobalAlloc

那么
malloc
有什么区别呢?这是未知的,但在我看来,它并没有像大多数malloc实现那样快,因为它使用相对过时的
GlobalAlloc
,而大多数malloc实现使用
VirtualAlloc
分配大块

请参阅MSDN对GlobalAlloc的说明:

注意:与其他内存管理功能相比,全局函数的开销更大,提供的功能更少。新的应用程序应该使用堆函数,除非文档说明应该使用全局函数。有关详细信息,请参见全局和局部函数


答案是malloc是C标准库的一部分,适用于任何C编译器/工具链,而MemAlloc不是C标准的一部分

显然,根据您给出的引文,某些库提供了一个名为MemAlloc的函数,我猜它会为内存分配一些额外的功能(您需要阅读每个库的文档才能知道确切的区别)。
这个函数本身甚至可能使用malloc。

答案是malloc是C标准库的一部分,适用于任何C编译器/工具链,而MemAlloc不是C标准的一部分

显然,根据您给出的引文,某些库提供了一个名为MemAlloc的函数,我猜它会为内存分配一些额外的功能(您需要阅读每个库的文档才能知道确切的区别)。
这个函数本身甚至可能使用malloc。

那是什么API?也许有一些线索?你的两个引语来自两个不同的东西,叫做memalloc,完全不相关。那是什么API?也许有什么线索?你这里的两个引语来自两个不同的东西,叫做memalloc,完全不相关。