malloc alloc区别
时间: 2023-12-06 11:20:53 浏览: 29
malloc和alloc都是内存分配函数,但是它们是来自不同的库。malloc函数是在stdlib.h库中定义的,而alloc函数是在alloc.h库中定义的。另外,malloc函数可以返回指向任意类型的指针,而alloc函数只能返回char类型的指针。总的来说,malloc函数是更通用和更常用的内存分配函数。
相关问题
详细介绍malloc alloc区别
当我们需要在C++中动态地分配内存时,我们通常会使用malloc或者new操作符。它们都可以在程序运行时分配内存,但是它们有几个不同点。
malloc是一个C函数,而new是一个C++的操作符。malloc返回一个void指针,而new返回一个指向所需类型的指针。因此,在C++中使用new,我们不需要显式地进行类型转换。
另一个区别是,new会自动调用类的构造函数来初始化分配的内存,而malloc不会。如果我们使用malloc来分配含有构造函数的类的内存,则必须显式地调用构造函数。
另外,malloc和free是一对C函数,而new和delete是一对C++的操作符。由于new和delete是内置操作符,使用它们可以减少与类和内存的交互。
总的来说,malloc和new都可以用于动态地分配内存,但是它们具有一些不同之处。在C++中,我们通常会更倾向于使用new和delete操作符来分配和释放内存。
void ( * malloc_alloc_template<inst>:: malloc_alloc_oom handler)() = 0;
这是C++中一个模板类的静态成员变量的定义,这个模板类是malloc_alloc_template,其参数为inst。这个静态成员变量的类型是一个函数指针,指向一个无返回值,无参数的函数。它的名字是malloc_alloc_oom,表示当内存分配操作失败时,所调用的处理函数。这个处理函数可以用来处理内存不足的情况,比如尝试释放一些不必要的内存或者提示用户释放一些内存空间等等。在这里,这个处理函数的初始值被设置为0,表示没有指定任何处理函数,如果需要的话,可以在程序运行时动态地设置这个处理函数。