在Linux终端窗口中键入:man malloc——可以查看malloc的相关信息
1、使用该函数需要在C语言程序中加入 :
#include<stdlib.h>
2、使用方式
void* malloc(size_t size);
向malloc申请的空间大小是以字节为单位的;返回的结果是void*,需要类型转换为自己需要的类型
(int*) malloc(n*sizeof(int));
3、使用完毕,需要释放内存
free()
把申请得来的空间还给“系统”,且只能还申请来的空间的首地址
4、常见问题
申请了没free——长时间运行内存逐渐下降,造成内存“垃圾”
新手——忘了
老手——找不到合适的free时机
free过了在free
注意:地址变过了,直接去free
5、代码示例
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int number;
int* a;
int i;
printf("输入数量: ");
scanf("%d",&number);
a=(int*)malloc(number*sizeof(int));
for(i=0;i<number;i++){
scanf("%d",&a[i]); //输入数字,完全可把a当数组使用
}
for(i=number-1;i>=0;i--){
printf("%d ",a[i]); //逆序输出
}
free(a); //释放内存
return(0);
}
本文深入探讨了C语言中如何使用malloc函数进行动态内存分配。讲解了malloc函数的用法,包括需要引入的库,申请内存的单位,以及返回值的类型转换。同时强调了内存释放的重要性,提醒开发者避免内存泄漏和错误释放的问题。并提供了一个代码示例以辅助理解。
9386

被折叠的 条评论
为什么被折叠?



