一、首先回顾一下内存分配的有关事实。全部的程序都必须留出足够内存来存储他们使用的数据。一些内存分配是自动完成的。如:数组
float x;ide
char place[]="dancing oxen creek".函数
因而系统将留出存储float或者字符串足够的内存空间,也可明确要求确切的内存,int a[100];这一声明留出100个内存位置。每一个位置可存储一个int值。c的功能远非如此。能够在程序运行时分配更多的内存。主要工具函数就是malloc(),参数:所需字节数。而后malloc()找到可用内存中一个大小适合的块。内存是匿名的,也就是说malloc()分配了内存,但没有为他指定名字。然而它却能够返回那块内存第一个字节的地址。所以,能够把该地址赋值给一个指针变量,并使用该指针来访问那块内存。malloc()函数可用来返回数组指针、结构指针等等。咱们使用malloc()来建立一个数组,能够在程序运行时使用malloc()请求一个存储块,另外还须要一个指针来存放该块在内存中的位置。工具
double * ptd;指针
ptd=(double*)malloc(30 * sizeof(double));请求30个double类型的空间,把ptd指向该空间的位置。通常来讲,对于每一个malloc()函数调用,应该调用一次free(),free()的参数是malloc()返回的地址,它释放先前分配的内存。内存