这个malloc函数为什么和假的一样,我不管分配多少字节他都可以一样啊,我甚至malloc 1个字节都可以一样运行??
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
malloc分配内存好奇怪
这个malloc函数为什么和假的一样,我不管分配多少字节他都可以一样啊,我甚至malloc 1个字节都可以一样运行??
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
秋杪 2022-06-01 05:58关注malloc returns a void pointer to the allocated space, or NULL if there is insufficient memory available. To return a pointer to a type other than void, use a type cast on the return value. The storage space pointed to by the return value is guaranteed to be suitably aligned for storage of any type of object. If size is 0, malloc allocates a zero-length item in the heap and returns a valid pointer to that item. Always check the return from malloc, even if the amount of memory requested is small.
另外,“malloc() 在分配内存的时候,并不是老老实实按用户预期申请的字节数来分配内存空间大小,而是会预分配更大的空间作为内存池。具体会预分配多大的空间,跟 malloc 使用的内存管理器有关系。”
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报 编辑记录微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2023-01-25 16:44小Caabbage的博客 malloc calloc relloc free 动态申请内存
- 2024-05-07 03:21Root_Smile的博客 (1)运行代码程序会出现崩溃...(2)程序存在内存泄漏问题:str 以值传递的形式给 pp 是 GetMemory 函数的形参,只在函数内有效等 GetMemory 函数返回之后,动态开辟内存尚未释放并且无法找到,所以会造成内存泄漏。
- 2021-06-24 12:32@一鸣惊人的博客 不论new/delete还是malloc/free,使用时必须配对使用。如果将混淆了他们那将是一件蠢事;不要企图用malloc/free完成动态对象的内存管理,应该使用new/delete;明确区分new/delete的三种形态
- 2020-08-06 14:15Xieyh@CUC的博客 分配长度为num_bytes个字节的内存块,返回值为无类型指针,该指针指向所分配内存块的起始位置,因此利用该无类型指针赋值给其他类型的指针的时候,需要进行强制类型转换。 使用之后需要free(指针),释放内存块。...
- 2024-04-12 06:47路奇怪的博客 抽象级别new是一个高级别的抽象,它会自动调用构造函数和析构函数,并处理内存分配和释放。而allocate是一个低级别的抽象,只负责分配和释放内存,不涉及对象的构造和析构。初始化new会初始化分配的内存,而allocate...
- 2024-07-17 09:31无数_mirage的博客 ),但他们都很好地避免了C的这种问题。这或许和C的历史有关,早期的C甚至必须要把变量定义在代码块的最顶部,不能把变量和代码块内的其它逻辑代码穿插在一起。其它语言里,"声明"和"定义"的说法是混用的。
- 2023-07-12 16:20i-neojos的博客 ThreadCache 属于线程管理的内存,对象所需的内存申请在线程内部完成,不涉及到加锁的开销,主要负责小对象的内存分配。中对于 TCMalloc 的介绍,和第一张图相比,这张图在介绍的时候,拆成了三个模块:front-end ...
- 2020-04-06 05:56范桂飓的博客 《C 语言编程 — 基本语法》 《C 语言编程 — 基本数据类型》 《C 语言编程 — 变量与常量》 《C 语言编程 — 运算符》 《C 语言编程 — 逻辑控制语句》 《C 语言编程 — 函数》 《C 语言编程 — 高级数据类型 — ...
- 2024-05-24 11:40xiaodeshi的博客 迄今为止,我们所接触到的一切都有个限制,需要预先知道大小。数组总是有一个编译时已知的长度(事实上,长度是类型的一部分)。我们所有的字符串都是字符串字面量,...即使你熟悉堆内存,比如使用过 C 语言的malloc。
- 2021-03-09 07:52Emily-C的博客 对象:不同于面向对象编程中的对象的含义,C语言是面向过程编程,不存在这样对象的概念,这个对象指的是值储存所占据物理内存空间。 左值:左值是可以指定对象的表达式,它的最简单形式即为标识符,复杂的可以为为...
- 2021-08-27 02:10AI天才研究院的博客 计算机编程确实是一门艺术。James Gosling,“Java 之父”, 完成了 Java 的原始设计,并实现了 Java 最初版本的编译器和虚拟机。90年代初,James Goslin...
- 2013-06-27 05:46keep_moving_cqu的博客 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行...
- 2012-02-11 08:08清晖读云的博客 高级编程语言的发展历程(一)创始纪 高级编程语言的发展历程(二)虚拟机的前世今生 高级编程语言的发展历程(三)FORTRAN 语言是怎么来的 高级编程语言的发展历程(四)LISP 和 AI 的青梅竹马 A ...
- 2020-07-29 06:31aFakeProgramer的博客 应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。以下这段小程序演示了堆...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司