在C语言中,一维数组在定义之后,其类型和数组长度是固定不变的。但在实际的编程中往往不能确定数组的具体大小,那么在定义数组时就故意把数组长度设置的大一些,以满足数据输入的需要。这种做法经常会导致数组的利用率不高等问题,为了提高数组的利用率和希望能够实现数组的动态变化,C语言中提供了一种动态一维数组的实现方式。
通过malloc( ),calloc( ), free( )等库函数可以由我们直接申请分配内存空间,而不必非要通过定义变量或数组才能够获得内存空间。在不需要这些空间时还可以随时将它们由系统回收,称为动态存储分配。malloc( ),calloc( )函数的返回值是一个地址,应当把这个地址保存到指针变量中,因为所分配的空间没有“变量”的名字,将来也只能通过地址访问。
在使用malloc( ),calloc( ), free( )函数时,要包含#include<stdlib.h>头文件。
malloc( ),calloc( )的使用方式