calloc与malloc的区别 - 宝宝 - CSDN博客

来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:23:58

 calloc与malloc的区别收藏

1.函数名: calloc

功 能: 在内存的动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配起始地址的指针;如果分配不成功,返回NULL。

用 法: void *calloc(unsigned n,unsigned size);

头文件:stdlib.h或malloc.h

2.函数名:malloc

原型:extern void *malloc(unsigned int num_bytes);

头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。

功能:分配长度为num_bytes字节的内存块

返回值:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。

说明:关于该函数的原型,在旧的版本中malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。

 

view plaincopy to clipboardprint?
  1. #include   
  2. #include   
  3. int main(int argc, char* argv[])  
  4. {  
  5.  char *str=(char*)calloc(10,sizeof(char));  
  6.  printf("str:%s\n",str);  
  7.  strcpy(str,"hello");  
  8.  printf("str:%s\n",str);  
  9.  free(str);  
  10.  char *str1=(char*)malloc(10*sizeof(char));  
  11.  printf("st1r:%s\n",str1);  
  12.  strcpy(str1,"hello");  
  13.  printf("str1:%s\n",str1);  
  14.  free(str1);  
  15.  return 0;  
  16. }  
 

 

vc6的输出:

str:
str:hello
st1r:屯屯屯屯屯葺摺汲(?
str1:hello
Press any key to continue

发表于 @2010年08月21日 22:19:00 | 评论( 0) | 编辑| 举报| 收藏

旧一篇:[算法库]MyDeque | 新一篇:[编程之美]寻找发贴水王Tango

查看最新精华文章 请访问博客首页相关文章