【存储类、链接、存储管理】分配内存:malloc()、free()

馋奶兔 提交于 2020-02-10 18:32:23

一、使用库函数:malloc()分配管理内存

(一)标识符(Identifier)

1. 定义变量时,使用了诸如 a、abc、mn123 这样的名字,它们都是程序员自己起的,一般能够表达出变量的作用,这叫做标识符

2. 除了变量名,函数名、宏名、结构体名等都是标识符

3. C语言规定,标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线,不能是数字。

4. 在标识符中,大小写是有区别的,例如 BOOK 和 book 是两个不同的标识符。

/*声明的同时,给出内存的标识符:x、place、a*/
/*系统将留出存储float/字符串足够的内存空间*/
/*所有程序必需留出足够内存来存储其使用的数据,一些内存分配是自动完成的:*/
float x;
char place[]="dancing oxen creek";
/*也可明确要求确切的内存*/
int a[100];

(二)malloc()函数

1. 可以在程序运行时分配内存

2. malloc();函数实现 分配内存 的步骤:

/*定义指针变量ptd*/
double * ptd;
ptd = (double *)malloc(30 * sizeof(double));

① malloc();函数 接收参数(所需内存字节数)【30 * sizeof(double)】

② malloc();函数 在计算机内存中找到合适的内存块,但malloc();函数没有为内存块指定名字,此内存是匿名的。

③ malloc();函数 可以返回此内存块第一个字节的地址【malloc(30 * sizeof(double))】

④ 因此可以把这个地址赋值给一个指针变量【ptd = (double *)malloc(30 * sizeof(double));】ptd指针变量则可通过地址访问那块内存

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!