c程序设计语言_习题8-6_利用malloc()函数,重新实现c语言的库函数calloc()

简介:

The standard library function calloc(n,size) returns a pointer to n objects of size size , with the storage initialized to zero. Writecalloc , by calling malloc or by modifying it. 

复制代码
/*
    Exercise 8.6. The standard library function calloc(n, size) returns a pointer to n objects
          of size size, with the storage initialised to zero. Write calloc, by calling 
          malloc or by modifying it.

    Author: Bryan Williams

*/

#include <stdlib.h>
#include <string.h>

/*
  Decided to re-use malloc for this because :
    1) If the implementation of malloc and the memory management layer changes, this will be ok.
    2) Code re-use is great.

*/
void *mycalloc(size_t nmemb, size_t size)
{
  void *Result = NULL;

  /* use malloc to get the memory */
  Result = malloc(nmemb * size);

  /* and clear the memory on successful allocation */
  if(NULL != Result)
  {
    memset(Result, 0x00, nmemb * size);
  }

  /* and return the result */
  return Result;
}

/* simple test driver, by RJH */

#include <stdio.h>

int main(void)
{
  int *p = NULL;
  int i = 0;

  p = mycalloc(100, sizeof *p);
  if(NULL == p)
  {
    printf("mycalloc returned NULL.\n");
  }
  else
  {
    for(i = 0; i < 100; i++)
    {
      printf("%08X ", p[i]);
      if(i % 8 == 7)
      {
    printf("\n");
      }
    }
    printf("\n");
    free(p);
  }

  return 0;
}
复制代码

 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/3648301.html,如需转载请自行联系原作者


相关文章
|
20小时前
|
算法 Java C语言
Java中的算法与C语言中的函数
Java中的算法与C语言中的函数
7 2
|
5天前
|
安全 C语言
【C语言基础】:内存操作函数
【C语言基础】:内存操作函数
|
5天前
|
编译器 C语言 C++
【C语言基础】:字符函数和字符串函数-2
【C语言基础】:字符函数和字符串函数
|
5天前
|
C语言
【C语言基础】:字符函数和字符串函数-1
【C语言基础】:字符函数和字符串函数
TU^
|
5天前
|
C语言
C语言习题~day39
C语言习题~day39
TU^
8 0
C语言习题~day39
TU^
|
5天前
|
编译器 程序员 Serverless
C语言之函数
C语言之函数
TU^
4 0
TU^
|
5天前
|
存储 C语言
C语言习题~day38
C语言习题~day38
TU^
4 0
|
机器学习/深度学习 人工智能 C语言
C语言简单实现14个例题(谭浩强第四版)
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396241 1、仅供学习交流参考。
1138 0
|
6天前
|
算法 Unix Linux
C语言随机数的产生(rand、srand、time函数细节讲解)
C语言随机数的产生(rand、srand、time函数细节讲解)
|
13天前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
20 1