字节对齐
1. X86结构是小端模式存储,既数据低位在低存储地址,数据高位在高存储地址。例如 short x = 0x3344; 假设x的地址为 0xBFFFF0F4,那么0xBFFFF0F4地址里面存储的是字节0x44, 0xBFFFF0F5地址里面存储的是字节0x33.
2. 为了使CPU能够跟快的访问内存,变量地址和变量长度有关联,即所谓地址对齐。4字节的int类型变量,其起始地址应...
分类:
其他好文 时间:
2015-01-28 19:50:44
阅读次数:
164
程序内存分配
____________________
| Stack区(栈区)(函数参数,局部变量,数组);自动创建,函数结束时自动释放,速度快,容量小
|____________________
| Static存储区(static变量,全局变量); 程序编译的时候就分配好
|____________________
|...
分类:
其他好文 时间:
2015-01-28 17:55:18
阅读次数:
186
如题,为什么内存充足时,malloc内存分配失败?
首先,在32位平台下,系统最多可管理4G内存,其中2G系统自用,剩下2G可供用户使用,然而在实际分配时,用户可用空间始终小于2G(若有童鞋在如上条件下分配空间 等于或大于2G可以联系我哦,以让我纠正自己的错误)。64位则可以管理好多,有兴趣的童鞋可以自己算下哦!偷笑
那么,这些跟malloc内存分配失败有什么关系呢有什么关系呢?哈哈,问题就在这里,32位平台下就不多说,相信上面的叙述可以解决童鞋们的问题。在64位平台下,童鞋们是不是发现依旧只能分配2...
分类:
其他好文 时间:
2015-01-25 16:46:47
阅读次数:
124
最近写的一个程序中需要频繁的申请和释放零碎的内存块,这些内存块的大小却只有简单的几种。如果直接使用系统调用malloc/free、new/delete进行内存分配和释放,则效率很低。程序运行时间长了会产生大量的内存碎片。想起uC/OS-II 里面提供了个内存分配单元,正好满足我的需要。就把里面相关的代码扒了出来。写成了一个内存池的类。
这个内存池的功能非常的简单,初始化时分配一大块内存,然...
分类:
其他好文 时间:
2015-01-23 16:24:55
阅读次数:
205
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是全然一致的。)功能:分配长度为num_bytes字节的内存块说明:假设分配成功则返回指向被分配内.....
分类:
其他好文 时间:
2015-01-23 14:40:42
阅读次数:
190
Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和delete),找出内存泄漏问题。 Valgrind 中包含的 Memcheck 工具可以检查以下....
分类:
其他好文 时间:
2015-01-22 12:57:13
阅读次数:
137
#include #include #include using namespace std;void swapTest(void *swapA,void *swapB,int size){char *buff=(char *)malloc(size);memcpy(buff,swapA,size)...
分类:
其他好文 时间:
2015-01-22 11:03:51
阅读次数:
108
typedef long Align; /* for alignment to long boundary */union header { /* block header */ struct { union header *ptr; /* next block if on f...
分类:
其他好文 时间:
2015-01-22 01:29:46
阅读次数:
194
本文主要分析内存以及I/O相关的系统调用和库函数的实现原理,根据原理给出在使用过程中需要注意的问题和优化的侧重点,本文涉及到的系统调用包括readahead,pread/pwrite,read/write,mmap,readv/writev,sendfile,fsync/fdatasync/msyn...
分类:
其他好文 时间:
2015-01-21 22:07:44
阅读次数:
291
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放 掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是 C的标准库中提供...
分类:
其他好文 时间:
2015-01-20 23:41:46
阅读次数:
345