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掉,这是一个良好的编程习惯,否则会造成内存泄漏,甚至系统崩溃;
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章题目:c语言内存管理总结-创新互联
标题来源:http://hbruida.cn/article/dpiesi.html