首页 > 代码库 > 分配内存malloc()和free()
分配内存malloc()和free()
1、首先回顾一下内存分配的有关事实。所有的程序都必须留出足够内存来存储他们使用的数据。一些内存分配是自动完成的。如:
float x;
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()返回的地址,它释放先前分配的内存。
分配内存malloc()和free()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。