c语言内存管理总结

内存的组织方式: 堆 和 栈;
    堆是用来存放动态分配内存空间;
    栈用来存放局部数据对象、函数参数以及调用函数和被调用函数的联系;


void *malloc(unsigned int size);   包含在stdlib.h头文件中,在堆中分配一块size大小的内存空间;该函数会返回一个指针,指向分配的内存空间,如果出错,则返回NULL;
例如:
       int *pInt;
       pInt=(int*)malloc(siezeof(int));


void *calloc(unsigned n,unsigned size);     包含在stdlib.h头文件中,功能是在内存中动态分配n个长度为size的连续内存空间数组;calloc函数会返回一个指针,指向动态分配的连续内存空间地址,当分配空间错误时,返回NULL。
例如:
      int * pArray;
      pArray=(int *)calloc(3,sizeof(int));       //pArray指向的就是该数组的收地址;


void *realloc(void *ptr,size_t size);          包含在stdlib.h头文件中,功能是改变ptr指针指向的空间大小为size,size大小可以是任意的;返回一个指向新地址的指针,如果出现错误,则返回NULL;
例如:
      FDouble=(double*)malloc(sizeof(double));
      iInt=realloc(fDouble,sizeof(int));               //改变一个分配的实型空间大小为整形大小;

void free(void *ptr);     功能是释放指针ptr指向的内存区,使部分内存区能被其它变量使用;


在使用malloc等分配内存后,还要记得将内存free掉,这是一个良好的编程习惯,否则会造成内存泄漏,甚至系统崩溃;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值