请教:malloc(8)之后,系统到底给分配多少内存?
我们的习惯都是malloc(8)或者malloc(16).......
即分配内存都是用2的幂次方来分配。
我们可用的内存为8、16个字节,但是,根据系统的需要,会在每一段内存前面添加一些信息(如这段内存的长度等)
所以,系统实际分配出来的内存应该大于我们所申请的大小。
照此理解,malloc(128)之后,系统实际分配的内存有可能就是256个字节???
如果以上理解正确,那么以前的受到的“节约”的内存申请方法(用2的幂次方)岂不是最大的浪费内存的方法??
希望高人指点一下,谢谢!!
即分配内存都是用2的幂次方来分配。
我们可用的内存为8、16个字节,但是,根据系统的需要,会在每一段内存前面添加一些信息(如这段内存的长度等)
所以,系统实际分配出来的内存应该大于我们所申请的大小。
照此理解,malloc(128)之后,系统实际分配的内存有可能就是256个字节???
如果以上理解正确,那么以前的受到的“节约”的内存申请方法(用2的幂次方)岂不是最大的浪费内存的方法??
希望高人指点一下,谢谢!!
...全文
相关推荐
嵌入式linux工程师面试题目C语言基础部分文档1.pdf
要使用CHAR_BIT,需要包含哪个头文件? 需要包含`<limits.h>`头文件,CHAR_BIT表示一个字节中的位数。8. 对(-1.2345)取整是多少?
c++结构体string无法用malloc分配内存
标题中提到的问题是关于“c++结构体string无法用malloc分配内存”。这是因为`malloc()`函数仅分配指定大小的内存空间,但不会调用任何构造函数。
C语言动态内存分配之malloc与realloc区别
"C语言动态内存分配涉及到malloc、realloc和calloc等函数,它们是程序在运行时动态管理内存的重要工具。动态内存分配允许程序员根据需要在堆上分配和释放内存,而不是在编译时预设固定大小。这
C语言中多维数组的内存分配和释放(malloc与free)的方法
"本文主要介绍了在C语言中如何使用malloc函数动态分配多维数组的内存,以及如何通过free函数正确释放这些内存。内容包括二维数组和三维数组的分配与释放,同时也提到了内存管理的相关知识,如内存泄漏
动态分配结构体内存(malloc)
该资源是关于C语言编程中动态分配结构体内存的示例,用于创建一个汽车销售系统的搜索界面数据库。程序通过`malloc`函数为`struct carinfo`结构体分配内存,存储汽车的相关信息,包括排量


