1、 堆内存
前面已经讲过,程序在内存中有四个区域,代码区、全局数据区、栈区和堆区。全局数据区、栈区都是静态分配区域。这里将介绍用于动态分配的区域- -堆(heap) 。
堆是程序运行时动态使用的一个内存空间。如果要在堆中的分配内存空间,必须使用特定的函数和操作符。另外,若不再需要分配的空间则必须释放。
void * malloc(unsigend long);
说明:括号中必须是unsigend long类型的表达式,用来表示需分配的内存单元(单位是字节)数量。函数返回void *型的指针,指向分配内存块的首地址。
前面已经讲过,程序在内存中有四个区域,代码区、全局数据区、栈区和堆区。全局数据区、栈区都是静态分配区域。这里将介绍用于动态分配的区域- -堆(heap) 。
堆是程序运行时动态使用的一个内存空间。如果要在堆中的分配内存空间,必须使用特定的函数和操作符。另外,若不再需要分配的空间则必须释放。
2、 用malloc函数获得堆内存
void * malloc(unsigend long);
说明:括号中必须是unsigend long类型的表达式,用来表示需分配的内存单元(单位是字节)数量。函数返回void *型的指针,指向分配内存块的首地址。
由于malloc函数返回的地址是void*类型,因此不能直接被使用,所以引用该函数时都必须进行类型转换。
堆是分配内存的一种方式,不属于存储数据的结构。