当前位置: 首页 > news >正文

用malloc申请空间的开辟和free空间的释放

malloc的头文件是#include<stdlib.h>

malloc开辟的空间虽然和数组一样可以调用,并且都是连续存放的,但是他们所在的位置不一样

malloc开辟的空间位置在堆区;

局部数组是把数据存在栈区;

动态内存空间的大小可以调整;

如果申请成功,会返回开辟好的空间的起始地址;

如果开辟失败,会返回NULL指针;

#include<stdio.h>
#incldue<stdlib.h>
#include<errno.h>
int main()
{//申请10个整型的空间int* p = (int*)malloc(10 * sizeof(int));if (p == NULL){//空间开辟失败perror("malloc");return 1;//错误返回1}//可以使用这40个字节int i = 0;for (i = 0; i < 10; i++){*(p + i) = i + 1;}//打印出来看看,是否完成for (i = 0; i < 10; i++){printf("%d  ", *(p + i));}printf("\n");return 0;
}

输出结果:


如果开辟失败:输入一个超级大的数字

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
int main()
{//申请10个整型的空间int* p = (int*)malloc(INT_MAX);if (p == NULL){//空间开辟失败perror("malloc");return 1;//错误返回1}//可以使用这40个字节int i = 0;for (i = 0; i < 10; i++){*(p + i) = i + 1;}//打印出来看看,是否完成for (i = 0; i < 10; i++){printf("%d  ", *(p + i));}printf("\n");return 0;
}

输出结果:

最后需要释放malloc申请的空间

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
int main()
{//申请10个整型的空间int* p = (int*)malloc(INT_MAX);if (p == NULL){//空间开辟失败perror("malloc");return 1;//错误返回1}//可以使用这40个字节int i = 0;for (i = 0; i < 10; i++){*(p + i) = i + 1;}//打印出来看看,是否完成for (i = 0; i < 10; i++){printf("%d  ", *(p + i));}printf("\n");free(p);p = NULL;return 0;
}

free(p);释放p会让p指向的空间不属于当前程序,但是还是可以找到这个空间

所以需要让p=NULL;,让p变成空指针


http://www.mrgr.cn/news/55761.html

相关文章:

  • 人工智能:塑造未来生活与工作的力量
  • 双ll将至,你找到好用的API接口获取商品详情数据吗?
  • element plus e-table表格中使用多选,当翻页时已选中的数据丢失
  • Java中的进程与线程(如果想知道Java中有关进程与线程的知识点,那么只看这一篇就足够了!)
  • 软考(网工)——局域网和城域网
  • Unity导入.FBX模型设置
  • 计算机网络基本命令
  • 《深度学习》 了解YOLO基本知识
  • Java全栈经典面试题剖析2】JavaSE面向对象1
  • 复盘秋招22场面试(四)形势重新评估与后续措施
  • 【论文学习与撰写】,论文word文档中出现乱码的情况,文档中显示的乱码,都是英文字母之类的,但打印预览是正常的
  • ARL 灯塔 | ARL 灯塔 — 指纹添加
  • Java最全面试题->Java主流框架->Srping面试题
  • JavaSE——IO流4:高级流(转换流InputStreamReader、OutputStreamWriter)
  • 点云处理中的三种近邻搜索方法:K近邻、体素内近邻和半径内近邻搜索
  • OpenSEMBA :一个用于电磁场模拟的开源软件框架
  • 论文阅读——Restormer
  • 11. 事件机制
  • 034_基于php万怡酒店管理系统
  • 如何在 CentOS 7 上使用 Nginx 将 www 重定向到非 www
  • Docker安装Mysql数据库
  • XMLHttpRequest和FormData下载文件,ajax下载文件
  • 035_基于php助农生鲜销售系统的设计与实现
  • 通用软件版本标识
  • 计算机的错误计算(一百三十)
  • X射线衍射(X-ray Diffraction,XRD)小白版