动态内存分配
2023-08-04 20:34:39 来源:博客园
(相关资料图)
动态内存分配
头文件
#include #include #include #include #include
malloc
int main(){ //像内存申请10个整形的空间 int* p =(int*)malloc(10*sizeof(int));//malloc不初始化为零 if(p==NULL) { //打印错误的一个方式 printf("%s\n",strerror(errno)); } else { //正常使用空间 int i = 0; for(i=0;i<10;i++) { *(p+i)=i; } for(i=0;i<10;i++) { printf("%d ",*(p+i)); } } //当动态申请的空间不在用的时候,就应该还给操作系统 free(p); p = NULL; return 0;}
calloc
int main(){ int* p=(int*)calloc(10,sizeof(int));//calloc初始化为零 if(p==NULL) { printf("%s\n",strerror(errno)); } else { int i = 0; for(i=0;i<10;i++) { printf("%d ",*(p+i)); } } free(p); p = NULL; return 0;}
realloc
int main(){ int* p = (int*)malloc(20); if(p==NULL) { printf("%s\n",strerror(errno)); } else { int i = 0; for(i=0;i<5;i++) { *(p+i) = i; } } //就是在使用malloc开辟的20个字节空间 //假设这里,20个字节不能满足我们使用 //希望有40个字节的空间 //这里用realloc开辟 //realloc使用注意事项 //1.原有空间后有足够的空间,原空间数据不发生变化 //2.没有足够空间,在堆空间上另找一个合适大小的连续空间来使用。这样函数返回的是一个新地址。 int* p2 = realloc(p,40); int i = 0; for(i=5;i<10;i++) { *(p+i) = i; } for(i=0;i<10;i++) { printf("%d ",*(p2+i)); } free(p); p = NULL; return 0;}
常见问题
int mian(){ //1.对空指针进行解引用操作 int* p = (int*)malloc(40); //万一malloc失败了,p被赋值为NULL //*p = 0;//err int i = 0; for(i=0;i<10;i++) { *(p+i) = i;//err } free(p); p = NULL; //2.对动态开辟的内存的越界访问 int *p = (int*)malloc(5*sizeof(int)); if(p == NULL) { return 0; } else { int i = 0; for(i=0;i<10;i++) { *(p+i) = i; } } free(p); p = NULL; //3.对动态开辟内存的free int a = 10; int* p = &a; *p = 20; free(p); p = NULL; int *p = (int*)malloc(40); if(p == NULL) { return 0; } // //使用 int *p2 = realloc(p,80); if(p2 != NULL) { p = p2; } int *p = realloc(NULL,40);//malloc(40) //4.使用free释放动态开辟内存的一部分 int *p = (int*)malloc(40); if(p == NULL) { return 0; } int i = 0; for(i=0;i<10;i++) { *p++ = i; } //回收空间 free(p); p = NULL; //5.对同一块动态内存的多次释放 int *p = (int*)malloc(40); if(p == NULL) { return 0; } //使用 //释放 free(p); p = NULL;//避免二次free //... free(p); //6.动态开辟内存忘记释放(内存泄漏) while(1) { malloc(1); } return 0;}
关键词:
相关阅读
-
动态内存分配
动态内存分配 头文件```c include include include include include` -
河北衡水市综合检验检测中心电动汽车充...
本报讯(付蔷记者徐东周)近日,河北省衡水市综合检验检测中心新建... -
安徽上半年127项标准获评国家企业标准“...
本报讯(记者李辉)今年上半年,安徽省127项标准获评国家企业标准“领 -
绿城拟在浙江绍兴上虞区城北建25幢住宅...
绿城拟在浙江绍兴上虞区城北建25幢住宅容积率1 5,城北,绿城,上虞区,住 -
“好汉杯”八达岭长城文创大赛启动,优...
北京日报客户端|记者李瑶近日,第四届“好汉杯”八达岭长城文创大赛... -
新东方“闯”文旅,好未来“重”AI
新东方“闯”文旅,好未来“重”AI,文旅,刘旷,电商,学而思,在线教育... -
央行行长潘功胜:引导金融资源更多流向...
中国央行行长潘功胜3日主持召开金融支持民营企业发展座谈会,听取有关 -
邵阳液压:8月3日融资买入107.8万元,融...
8月3日,邵阳液压(301079)融资买入107 8万元,融资偿还47 41万元,融 -
久盛电气:8月3日融资净买入209.57万元...
8月3日,久盛电气(301082)融资买入300 19万元,融资偿还90 62万元, -
郑州打响存量房贷利率调整“第一枪” ...
郑州打响存量房贷利率调整“第一枪”。对此,业内人士认为,本次郑... -
开勒股份:8月3日融资买入101.28万元,...
8月3日,开勒股份(301070)融资买入101 28万元,融资偿还44 51万元, -
北京中加学校各年级入学考试内容一览
北京中加学校每个年级段都设置了相应的入学考试。从小学到初中再到高中 -
质数是什么意思 质数有哪些
质数的意思是素数,除本身的绝对值外,不可能为大于1的整数除尽的数。 -
显盈科技:8月3日融资净买入55.07万元,...
8月3日,显盈科技(301067)融资买入81 22万元,融资偿还26 14万元,融 -
蒜苔怎么腌制好吃腌蒜苔的家常做法大全?
糖醋腌蒜苔1 用糖醋汁腌制的大蒜苔特别好吃。腌制时,需要准备山西老醋 -
南京高中辅导班哪家好一些?
南京高中辅导班哪家好一些在南京,高中辅导班的选择众多,但是哪家好一 -
腌蒜苔的正确做法?
1、清水给蒜苔冲洗干净,洗干净的蒜苔给它放到案板上摊开晾干2 等蒜苔 -
高中化学没学好怎补课?
一、多记基础知识在学习化学时,很多人容易出现基础知识记忆不牢固的情 -
云南2023二建查分时间:考后2-3个月
根据规定,云南2023年二级建造师成绩查询时间为:考后2-3个月,考生点 -
蒜苔怎么晒成腌菜?
买回家的蒜苔需要先挑选和清洗一下,把蒜苔上面苔苞部分去掉,从这个比