指针与malloc动态内存申请,堆和栈的差异

定义了两个函数print_stack()print_malloc(),分别演示了两种不同的内存分配方式:栈内存和堆内存。然后在main()函数中调用这两个函数,并将它们返回的指针打印出来。

  1. 由于print_stack()中的数组c是在栈上分配的,当函数返回后,c所在的内存空间就会被释放,因此在main()函数中再次打印p时,会导致未定义的行为。

  2. print_malloc()函数中使用了动态内存分配函数malloc,在函数返回后,由于是在堆上分配的内存空间,因此在main()函数中再次打印p时,仍然能够正确输出来。

代码展示:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define N 5
char* print_stack(){char c[100]="hello hasdhkjas";char *p;p=c;puts(p);return p;
}char* print_malloc(){char *p;p=(char*)malloc(N);strcpy(p,"helloolleh");puts(p);return p;}int main(){char *p;p= print_stack();puts(p);p= print_malloc();puts(p);return 0;
}

结果展示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统——LAMP架构

目录 一、LAMP架构组成 1.LAMP定义 2.各组件的主要作用 3.CGI和FastCGI 3.1CGI 3.3CGI和FastCGI比较 4.PHP 4.1PHP简介 4.2PHP的Opcode语言 4.3PHP设置 二、LAMP架构实现 1.编译安装Apache httpd服务 2.编译安装Mysql 3.编译安装PHP 4.安装论坛 5.搭建博客 W…

【前端素材】推荐优质后台管理系统 Greeva平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

爱心商城|爱心商城系统|基于Springboot的爱心商城系统设计与实现(源码+数据库+文档)

爱心商城系统目录 目录 基于Springboot的爱心商城系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1、商品管理 2、捐赠管理 3、公告管理 4、公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

2024年制造业,智能控制与材料科学国际会议(ICMICMS 2024)

全称&#xff1a;2024年制造业&#xff0c;智能控制与材料科学国际会议&#xff08; ICMICMS 2024&#xff09; 会议网址:http://www.icmicms.com会议时间: 2024.03.25截稿时间&#xff1a;2024.03.15会议地点: 昆明投稿邮箱&#xff1a;icmicms_info163.com投稿标题&#xff1…

探索数据结构:解锁计算世界的密码

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty‘s blog 前言 随着应用程序变得越来越复杂和数据越来越丰富&#xff0c;几百万、…

家用洗地机如何选?4款详细测评来啦,家用洗地机选购攻略

在智能家居清洁时代&#xff0c;洗地机成为了大多数人的首选&#xff0c;它强大的清洁力以及能够集扫拖吸为一体的清洁方式&#xff0c;既节约了劳动时间成本&#xff0c;也节省了各式各样的清洁工具&#xff0c;让原本繁琐的家务变得简单且高效。那么如何选择适合自己的、满足…

【递归搜索回溯专栏】前言与本专栏介绍

本专栏内容为&#xff1a;递归&#xff0c;搜索与回溯算法专栏。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;递归搜索回溯专栏 &#x1f69a;代码仓库&#xff1a;小小unicorn的代…

adb命令

1. 常用命令&#xff1a; adb devices #查看连接设备adb -s cf27456f shell # 指定连接设备使用命令adb install test.apk # 安装应用adb install -r demo.apk #安装apk 到sd 卡&#xff1a;adb uninstall cn.com.test.mobile #卸载应用&#xff0c;需要指定包adb uninstall -…

设计模式系列文章-7个创建型模式更新已完结

其实从2019年开始就有些一套关于设计模式的系列文章&#xff0c;但是因为种种原因一直搁置到现在。直到2024年才又恢复更新。 24年1月份上旬一直在弄博客站&#xff1a;https://jaune162.blog 的搭建 24年1月份下旬弄专题站&#xff1a;https://books.jaune162.blog 的搭建。…

day06_菜单管理(查询菜单,添加菜单,添加子菜单,修改菜单,删除菜单,角色分配菜单,查询菜单,保存菜单,动态菜单)

文章目录 1 菜单管理1.1 表结构介绍1.2 查询菜单1.2.1 需求说明1.2.2 页面制作1.2.3 后端接口SysMenuSysMenuControllerSysMenuServiceMenuHelperSysMenuMapperSysMenuMapper.xml 1.2.4 前端对接sysMenu.jssysMenu.vue 1.3 添加菜单1.3.1 需求说明1.3.3 页面制作1.3.3 后端接口…

代码随想录算法训练营day29

题目&#xff1a;491_非递减子序列&#xff08;看了题解&#xff09; 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7]…

怎样进入powershell状态?怎样获取powershell的help信息?

进入powershell的方法之一&#xff1a;在dos命令窗口运行powershell命令&#xff0c;系统输出版权信息&#xff0c;命令行提示符前面出现PS 标志。说明系统进入powerrshell状态&#xff08;如下图&#xff09;。 获取powershell的help信息方法&#xff1a; 在powershell命令行…