我只分配了2个字节的动态内存
5(int)类型是占四个字节 为什么还是运行结果为 5
*p=5 不应该是将5的值赋值给malloc所建立的2个字节虚拟内存嘛
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
自学C语言 遇到了一个问题想不通
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
Pliosauroidea 2021-08-18 14:45关注前面想当然了233看的时候请忽略此条答案下面的评论,我发的那个图是错的
因为内存空间是连续的,你在写入的时候其实强行写到了malloc空间的外面,但是指针一直指向那块内存空间,短时间内这块空间没有被覆盖,所以你后面依然能够读到对应的数值
你改成malloc(0)再跑也是可以跑出同样的结果的,因为C的内存操作其实是很暴力的,可以直接越界本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 2无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-09-11 06:00回答 1 已采纳 10就是换行符的ASCII码。换行符也是一个字符,你用%d输出的就是ASCII码。因为换行符不可见,所以你用putchar输出换行符就是个空白行
- 2022-02-06 04:08回答 4 已采纳 1 << 0 是把1 按2进制 左移0位,结果还是 1 ,2进制 0000 00011 << 1, 是把1 按2进制 左移1位,结果是2,2进制 0000 0010关于位运算
- 2022-09-04 14:18回答 3 已采纳 include 想要包含一个标准 io的头文件,用以printf 或者scanf 等,但是你写错了,应该是 stdio.h ,你比较下看看
- 2022-05-30 16:15繁华哟的博客 C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言教程是进入编程世界的必修课! 二、C语言的具体结构 博主已将这些基础知识汇总成了一个PDF版的C语言教程关注博主的微 信 公 众号 “C和C加加” 回复“PDF”...
- 2022-10-01 14:47回答 1 已采纳 数组不能这样赋值, 用sprintf或者memcpy, 或者用一个循环一个一个字符赋值。比如 sprintf( stu.name, "zzzz"), 注意拷贝的时候不能越界
- 2023-04-11 08:15回答 2 已采纳 这段代码中,char a[5][10] 是一个二维字符数组,它包含 5 行 10 列,即 5 个字符串,每个字符串最多包含 9 个字符(最后一个字符为字符串的结束符 '\0')。因此,该数组在定义时就
- 2022-03-05 03:51回答 2 已采纳 不论是怎么样学习,必须要弄清楚: 为什么某段代码 不是预期的效果?为什么某段代码 是预期的效果?要知其然,更要知其所以然。
- 2018-02-07 13:26cbirdfly.的博客 本人也是一个菜鸟,目前依然还在学习,当初在我开始自学C语言的时候,走过了好多弯路,如果你看到这篇文章,希望你不要走我走过的弯路,这也是我写这篇文章的目的,我也不想像老头子一样叨叨叨,哪些要做,哪些不要...
- 2022-10-26 06:50回答 1 已采纳 这跟编译器有关系,跟你使用什么标准也有关系
- 2021-12-15 14:50回答 1 已采纳 b是1,a数组就1个元素,scanf_s("%d", a+i);这里可能会导致数组越界。 a = (int *)malloc(b* sizeof(int)); 改成 a = (int *)mallo
- 2021-12-01 13:08回答 1 已采纳 头文件应该是.h文件,截图中的第一行的 后面加上.h如下: #include "StudentMangerSystem.h"
- 2024-03-23 02:18在"自学C语言初阶C-Project4.rar"这个项目中,你将有机会实践C语言的基本概念和语法。项目4通常涉及了之前学习的累积,包括变量、数据类型、控制结构(如if语句和switch语句)、循环(for、while、do-while)、函数...
- 2024-03-23 02:18在IT行业中,C语言被视为一种基础且至关重要的编程语言,尤其对于初学者而言,它是进入计算机科学世界的绝佳入口。"自学C语言初阶C-Project3.rar"这个压缩包文件显然是为那些正在学习C语言的人设计的,它包含了第三...
- 2021-09-19 05:28首先,C语言作为一门经典的编程语言,它的教学具有广泛的代表性,对于理解计算机编程课程的普遍教学问题与解决策略具有重要意义。C语言因其接近硬件的特性、高效的执行速度以及在操作系统和嵌入式系统开发中的广泛...
- 2021-09-19 06:27C语言是一门在高等院校计算机专业中常见的编程语言,作为基础课程,它...文章通过具体案例和详尽的分析,提出了在教学过程中应当采取的策略,以解决学生在学习C语言中遇到的问题,从而更好地把握编程语言的学习要领。
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司