摘要: 1引言操作系统的内存分配问题与内存对齐问题对于低层程序设计来说是非常重要的,对内存分配的理解直接影响到代码质量、正确率、效率以及程序员对内存使用情况、溢出、泄露等的判断力。而内存对齐是常常被忽略的问题,理解内存对齐原理及方法则有助于帮助程序员判断访问非法内存。2程序的内存分配问题一、一般C/C++程序占用的内存主要分为5种1、栈区(stack):类似于堆栈,由程序自动创建、自动释放。函数参数、局部变量以及返回点等信息都存于其中。2、堆区(heap):使用自由,不需预先确定大小。多数情况下需要由程序员手动申请、释放。如不释放,程序结束后由操作系统垃圾回收机制收回。3、全局区/静态区(static 阅读全文
posted @ 2012-07-29 15:46 dancingrain 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 内存对齐在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。我们还是先来看一段简单的程序: 程序一1#include2usingnamespacestd;34structX15{6inti;//4个字节7charc1;//1个字节8charc2;//1个字节9};1011structX212{13charc1;//1个字节14inti;//4个字节15charc2;//1个字节16};1718structX319{20charc1;//1个字节21charc2;//1个字节22inti;//4个字节23};24 阅读全文
posted @ 2012-07-29 15:35 dancingrain 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 首先看一段代码以及运行结果,我将结合该段代码讲解指针和引用的两点区别:// // main.cpp // testC++02 // // Created by fei dou on 12-7-29. // Copyright (c) 2012年 vrlab. All rights reserved. // #include #include using namespace std; int main (int argc, const char * argv[]) { string str1 = "I am a simple string object"; s... 阅读全文
posted @ 2012-07-29 14:03 dancingrain 阅读(221) 评论(0) 推荐(0) 编辑