码迷,mamicode.com
首页 > 其他好文 > 详细

分配内存malloc()和free()

时间:2017-08-12 22:39:45      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

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()

标签:

原文地址:http://xiaoqiaoya.blog.51cto.com/11401044/1955755

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!