C和指针之动态内存分配之(编写calloc函数,函数内部使用malloc函数来获取内存)

来源:互联网 发布:拓扑算法数学建模 编辑:程序博客网 时间:2024/05/22 03:24

1、问题

编写calloc函数,函数内部使用malloc函数来获取内存








2、代码实现

#include <stdio.h>#include <stdlib.h>void *my_calloc(size_t nums, size_t element_size){    int i, all_size;    all_size = nums * element_size;    char *p = NULL;    p = malloc(all_size);    if (p == NULL)        return NULL;    for (i = 0; i < all_size; ++i)        p[i] = 0;    return p;}int main(){    char *p = my_calloc(10, sizeof(char));    if (p != NULL)    {        for (int i = 0; i < 10; ++i)        {             printf("p[%d] is %d\n", i, p[i]);        }        free(p);    }    int *p_int = my_calloc(10, sizeof(int));    if (p_int != NULL)    {        for (int i = 0; i < 10; ++i)        {             printf("p_int[%d] is %d\n", i, p_int[i]);        }        free(p_int);    }    return 0;}







3、运行结果

1111deMacBook-Pro:malloc a1111$ vim calloc.c1111deMacBook-Pro:malloc a1111$ gcc -g calloc.c -o calloc1111deMacBook-Pro:malloc a1111$ ./callocp[0] is 0p[1] is 0p[2] is 0p[3] is 0p[4] is 0p[5] is 0p[6] is 0p[7] is 0p[8] is 0p[9] is 0p_int[0] is 0p_int[1] is 0p_int[2] is 0p_int[3] is 0p_int[4] is 0p_int[5] is 0p_int[6] is 0p_int[7] is 0p_int[8] is 0p_int[9] is 0



阅读全文
0 0