鲲鹏社区首页
EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

calloc

函数功能

连续内存块分配并且初始化内存为0。

函数定义

void *calloc(size_t number_of_objects, size_t size_of_object);

参数说明

参数名

描述

取值范围

输入/输出

number_of_objects

申请内存块的数量。

非负数

输入

size_of_object

申请内存块的字节数。

非负数

输入

返回值

  • 成功:返回指向分配内存的指针
  • 失败:返回空指针

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "kqmalloc.h"

#define KQMALLOC_TEST_LEN 10

void CallocExample()
{
    int8_t *res = (int8_t *)calloc(KQMALLOC_TEST_LEN, KQMALLOC_TEST_LEN);
    if (res == NULL) {
        printf("res is null\n");
    } else {
        printf("calloc pointer address: %lx\n", res);
        free(res);
    }
}

int main(void) {
    CallocExample();
    return 0;
}

编译。

1
gcc run_your_application.c -o run_your_application -I/usr/local/ksl/include -L/usr/local/ksl/lib

运行。

1
LD_PRELOAD=/usr/local/ksl/lib/libkqmalloc.so ./run_your_application

运行结果:

1
calloc pointer address: ffffafe4c690