您的位置:首页 > 编程语言 > C语言/C++

C++ 内存布局占用情况

2015-08-20 10:35 351 查看
C++ 中内存分布比较复杂,主要分为堆、栈、.data区、代码段,在平时会涉及到一个类的内存大小,总结如下:

1. 普通的成员函数不会占内存,但是普通的成员变量占内存。

2. Static的变量和函数都不会占内存。static数据存放于.data区中,并不在堆栈中。

3. Virtual成员函数(包括纯虚函数)会占内存,因为会有一个vptr指向virtual
table的原因,所以不管有多少个virtual函数,均只占一个sizeof(vptr)=4


4. 派生类:需要加上其基类的size

5. 空类中,编译器会自动加入一个字节。这么做是为了保证每个对象都有唯一的内存地址。例如:A 声明了b,c对象,如果不添加一个字节,b,c的起始地址会发生冲突。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: