指针与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.mzph.cn/news/712618.shtml

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

相关文章

【哈希表算法题记录】242.有效的字母异位词

题目链接 这题思路比较简单&#xff0c;考虑到26个小写字母的ASCII是连续的&#xff0c;那么我们可以设置一个size为26的哈希表record&#xff0c;然后记录26个字母分别在string中出现的次数。例如&#xff0c;record[0]记录的是字母‘a’出现的次数。于是我们主要就是要获得每…

Python装饰器的使用详解

目录 1、函数装饰器 1.1、闭包函数 1.2、装饰器语法 1.3、装饰带参数的函数 1.4、被装饰函数的身份问题 1.4.1、解决被装饰函数的身份问题 1.5、装饰器本身携带/传参数 1.6、嵌套多个装饰器 2、类装饰器 装饰器顾名思义作为一个装饰的作用&#xff0c;本身不改变被装…

Acwing 周赛135 解题报告 | 珂学家 | 反悔堆贪心

前言 整体评价 VP了这场比赛&#xff0c; T3挺有意思的&#xff0c;反悔贪心其实蛮套路的。 A. 买苹果 思路: 签到 n, x list(map(int, input().split())) print (n // x)B. 牛群 思路: 分类讨论 from collections import Counters input() cnt Counter(s)lists sorte…

WPF 【十月的寒流】学习笔记(2):MVVM中是怎么实现通知的

文章目录 前言相关链接代码仓库项目配置代码初始代码ViewPersonViewModel 尝试老办法通知解决方案ObservableCollectionBindingListICollectionView 总结 前言 我们这次详细了解一下列表通知的底层是怎么实现的 相关链接 十月的寒流 MVVM实战技巧之&#xff1a;可被观测的集合…

2024年【A特种设备相关管理(电梯)】考试总结及A特种设备相关管理(电梯)证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年A特种设备相关管理&#xff08;电梯&#xff09;考试总结为正在备考A特种设备相关管理&#xff08;电梯&#xff09;操作证的学员准备的理论考试专题&#xff0c;每个月更新的A特种设备相关管理&#xff08;电梯…

KVM部署Windriver Linux操作系统

安装前准备 创建密码配置文件&#xff0c;否则虚机启动后无法登录 cd /var/lib/libvirt/images/disks/windriver/ docker run -ti --rm quay.io/coreos/mkpasswd --methodyescrypt 123456 >password_hash.txt cat <<-ENDOF> sample.bu variant: fcos version: 1.4…

面试 Java 基础八股文十问十答第十二期

面试 Java 基础八股文十问十答第十二期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;创建一个对象用什么关…

代码随想录day27:贪心part1,基础篇

文章目录 day27&#xff1a;贪心part1&#xff0c;基础篇455.分发饼干376.摆动序列53.最大子数组和 day27&#xff1a;贪心part1&#xff0c;基础篇 455.分发饼干 循环结束条件注意饼干比孩子多的情况 class Solution {public int findContentChildren(int[] g, int[] s) {A…

C++:非静态成员默认初始化

C11之前只有常静态成员变量才能进行默认初始化&#xff0c;其它变量初始化时总要进行繁琐的过程 class A{int a; public:A():a(10){} };C11开始支持非静态成员的默认初始化&#xff0c;默认初始化和初始化参数列表同时初始化一个变量时会使用初始化参数列表&#xff0c;不进行…

JavaScript new、apply call 方法

new、apply、call、bind JavaScript 中的 apply、call和 bind 方法是前端代码开发中相当重要的概念&#xff0c;并且与 this 的指向密切相关 new new 关键词的主要作用 就是执行一个构造函数、返回一个实例对象 根据构造函数的情况&#xff0c;来确定是否可以接受参数的传递…

Huggingface初上手即ERNIE-gram句子相似性实战

大模型如火如荼的今天&#xff0c;不学点语言模型&#xff08;LM&#xff09;相关的技术实在是说不过去了。只不过由于过往项目用到LM较少&#xff0c;所以学习也主要停留在直面——动眼不动手的水平。Huggingface&#xff08;HF&#xff09;也是现在搞LM离不开的工具了。 出于…

最新 DataGrip 2023.3.4 下载安装激活 + 永久免费

文章目录 DataGrip简介同类产品对比使用技巧不足实战 下载安装激活Stage 1 : 官网下载Stage 2 : 下载工具Stage 3-1 : windows为例Stage 3-2 : mac为例常见问题部分小伙伴 Mac 系统执行脚本遇到如下错误&#xff1a;解决方法&#xff1a; 执行脚本做了啥&#xff1f;和收费版区…

基于springboot+vue的可盈保险合同管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

XUbuntu22.04之如何找到.so库所在的软件包?(二百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

Vue中的事件总线(EventBus)是什么?它有什么优点和缺点?

作为一名使用Vue的前端开发者&#xff0c;有时候会听到事件总线(EventBus)这个名词。但可能是我入行比较晚&#xff0c;我在Vue网站中并没有看到过事件总线的介绍&#xff0c;在项目中也没有使用过。那究竟什么是事件总线&#xff1f;事件总线可以解决什么问题&#xff1f; 事…

element-plus表格合并

要实现这样的表格&#xff0c; 怎么做呢&#xff1f; 甚至是这种三级的呢&#xff1f; 官网的案例也是通过这个方法进行配置的&#xff0c;也就是说表格长什么样&#xff0c;关键在怎么处理的方法上。 这是官网的方法&#xff0c;可参考拓展&#xff1a; const arraySpanMeth…

一款云渗透工具 - Sea Moon

SeaMoon - 月海 什么是月海 &#x1f315; 月出于云却隐于海 月海(Sea Moon) 是一款 FaaS/BaaS 实现的 Serverless 网络工具集&#xff0c;期望利用云原生的优势&#xff0c;实现更简单、更便宜的网络功能。 月海之名取自于苏轼的《西江月顷在黄州》&#xff0c;寓意月海取自…

【JVM】JVM相关机制

1. JVM内存区域划分 1.1 内存区域划分简介 内存区域划分&#xff1a;实际上JVM也是一个进程&#xff0c;进程运行时需要向操作系统申请一些系统资源&#xff08;内存就是典型的资源&#xff09;&#xff0c;这些内存空间就支撑着后续Java程序的运行&#xff0c;而这些内存又会…

Python环境搭建:一站式指南

在当前AIGC技术蓬勃发展的背景下&#xff0c;Python作为人工智能领域最受青睐的编程语言之一&#xff0c;成为我们必须掌握的技能。因此&#xff0c;搭建一个适合自己的Python环境成为了每个Python开发者的首要任务。本文将为您提供一站式的Python环境搭建指南&#xff0c;帮助…

PythonOpenCV随机粘贴图像

import cv2 import numpy as np import random # 读取两个图像 image1 cv2.imread(image1.jpg) image2 cv2.imread(image2.jpg) # 将image1转换为灰度图像 gray_image1 cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY) # 创建掩码&#xff0c;黑色部分为0&#xff0c;非黑色部…