c语言内存管理总结-创新互联

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

成都创新互联是一家业务范围包括IDC托管业务,网页空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,服务器机柜租赁,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。

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掉,这是一个良好的编程习惯,否则会造成内存泄漏,甚至系统崩溃;

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:c语言内存管理总结-创新互联
转载源于:http://ybzwz.com/article/dpiesi.html