易百教程

malloc()函数简介

malloc()以给定大小分配内存以存储某个变量类型。

它的格式如下:

p = (type *)malloc(size);

type是一个类型转换,指示malloc()分配一大块内存,用于存储给定变量类型的适当信息量。size是需要的存储量。
它以字节为单位进行测量,但必须分配足够的存储空间以容纳变量类型。malloc()函数返回已分配的内存块的地址。地址存储在指针p中,指针p必须与变量类型匹配。
无法分配内存时,将返回NULL值。在使用分配的内存之前,必须检查是否为NULL

示例代码

#include <stdio.h> 
#include <stdlib.h> 

int main()
{ 
    int *age; 

    age = (int *)malloc(sizeof(int)*1); 
    if(age == NULL) 
    { 
        puts("无法分配内存"); 
        exit(1); 
    } 
    printf("你今年多大了? "); 
    scanf("%d",age); 
    printf("你今年 %d 岁了.\n",*age); 
    return(0); 
}

执行上面示例代码,得到以下结果:

你今年多大了? 22
你今年 22 岁了

该代码使用malloc()为一个整数分配存储空间。为确保分配适当的存储量,使用sizeof运算符。要为一个整数分配空间,将1乘以sizeof(int)作为结果。
该存储的地址保存在age指针中。代码测试以确保malloc()能够正常分配内存。
如果不能正常分配,则返回的值为NULL,程序显示错误消息并退出。