社区
C语言
帖子详情
malloc问题
_肆
2018-07-03 08:48:03
不是很懂malloc具体的机制,平时都是套格式用。
比如现在 float *a=(float*)malloc(sizeof(float)); 然后去给a[3]去赋值,一切都正常啊,不知道这个怎么解释
...全文
133
2
打赏
收藏
malloc问题
不是很懂malloc具体的机制,平时都是套格式用。 比如现在 float *a=(float*)malloc(sizeof(float)); 然后去给a[3]去赋值,一切都正常啊,不知道这个怎么解释
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
自信男孩
2018-07-03
打赏
举报
回复
越界访问是未定义行为,即有出错的可能,程序不一定会出问题。但这终归是一个bug。
越界访问可能是越界的内存未被使用,越界的内存正好也是可读可写的。
还有可能,虽然申请sizeof(float)个字节,内存管理会申请比sizeof(float)更多的内存(这是必然,因为需要记录申请的信息)
赵4老师
2018-07-03
打赏
举报
回复
其实电脑开机后物理内存的每个字节中都有值且都是可读写的,从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页,一页通常为4KB。
CSAPP:
malloc
lab 文档及解答
《深入理解计算机系统》一书的配套lab之
malloc
lab。学生用来实现自己的
malloc
, realloc和free函数。 Students implement their own versions of
malloc
, free, and realloc. This lab gives students a clear understanding of data layout and organization, and requires them to evaluate different trade-offs between space and time efficiency. One of our favorite labs. When students finish this one, they really understand pointers!
ESP8266 TCP 调试
问题
MALLOC
问题
一、TCP卡死(无法下发,无法上传) 采用非阻塞socket时,发送多次数据后,发现tcp发送是成功的,读取是成功的,服务器下发却是失败的,经过排查,是因为heap过低导致的,这里会出现一种假死状态,所以为了维持tcp的正常(除非用没收到心跳包回复来做死机判断),必须限定tcp的heap足够 二、内存溢出排查 排查内存溢出时,发现是 采用
malloc
,free没有释放,排查原因,发现是
malloc
的buf的地址指针被改变了! ...
malloc
申请内存
问题
问题
描述 最近发现了一个越界有概率会造成段错误的
问题
。具体
问题
是这样的,首先
malloc
申请一块内存,但使用时比实际的大一个字节,比如我申请了52个字节,使用了53个或者申请50个使用了51个,然后我发现的现象是当我申请了52个字节使用了53个字节的时候,程序肯定会挂掉,但申请了50个字节使用了51个的时候程序是不会挂的。同样是越界,为什么会造成这样的结果呢?
问题
排查 于是,做了一个的实验,查看申请的内存和实际可使用的内存是否一致的,使用
malloc
_usable_size可以查看内存的实际可用空间。 #
C语言中关于
malloc
(0)
问题
C语言中关于
malloc
(0)
问题
malloc
(0)详解常见面试题
malloc
(0)详解 首先来解释
malloc
(0)的
问题
,这个语法是对的,而且确实也分配了内存,但是内存空间是0,就是说返回给你的指针是不能用的,感觉奇怪吧?但是从操作系统的原理来解释就不奇怪了,这要涉及操作系统维护内存的方法来说了。 在内存管理中,内存被分为2部分,栈和堆,栈有自己的机器指令,是一个先进后出的数据结构,在这里不再过多解释了,
malloc
分配的内存是堆内存,由于堆没有自己的机器指令,所以要有系统自己编写算法来管理这片内存,
函数内部使用
malloc
问题
汇总
转自:https://bbs.csdn.net/topics/391926409 在函数里
malloc
,如何将地址传到函数外? 一种是用return把地址带出来,也可以用二级指针将函数内的地址带出 func(structnode*p)这个是对指针p指向的节点进行修改 func(structnode**p)这个是对p指针本身进行修改(一般会改变p的指向) 转自:https://www...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章