📜  C++ malloc()

📅  最后修改于: 2020-09-25 08:54:09             🧑  作者: Mango

C++中的malloc() 函数分配一个未初始化的内存块,如果分配成功,则返回指向已分配内存块的第一个字节的空指针。

C++中的malloc() 函数分配一个未初始化的内存块,如果分配成功,则返回指向已分配内存块的第一个字节的空指针。

如果大小为零,则返回的值取决于库的实现。它可以是也可以不是空指针。

malloc()原型

void* malloc(size_t size);

此函数在头文件中定义。

malloc()参数

malloc()返回值

malloc() 函数返回:

示例1:malloc() 函数如何工作?

#include 
#include 
using namespace std;

int main()
{
    int *ptr;
    ptr = (int*) malloc(5*sizeof(int));

    if(!ptr)
    {
        cout << "Memory Allocation Failed";
        exit(1);
    }
    cout << "Initializing values..." << endl << endl;

    for (int i=0; i<5; i++)
    {
        ptr[i] = i*2+1;
    }
    cout << "Initialized values" << endl;

    for (int i=0; i<5; i++)
    {
        /* ptr[i] and *(ptr+i) can be used interchangeably */
        cout << *(ptr+i) << endl;
    }

    free(ptr);
    return 0;
}

运行该程序时,输出为:

Initializing values...

Initialized values
1
3
5
7
9

示例2:大小为零的malloc() 函数

#include 
#include 
using namespace std;

int main()
{
    int *ptr = (int*) malloc(0);
    if(ptr==NULL)
    {
        cout << "Null pointer";
    }
    else
    {
        cout << "Address = " << ptr << endl;
    }

    free(ptr);
    return 0;
}

运行该程序时,输出为:

Address = 0x371530