首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++种、结构对象内存布局浅析

2013-10-08 
C++类、结构对象内存布局浅析最近面试多,出的题目很多都有如下形式,给定一个class或者struct的定义,例如这

C++类、结构对象内存布局浅析

最近面试多,出的题目很多都有如下形式,给定一个class或者struct的定义,例如这样:


其中一个方格(不是很方……)代表一个字节,红色的部分是a占用的内存空间,绿色是b,蓝色是c,黄色是d,而带斜线的部分则是被0x80000000赋值的内存区域。

好了,现在给出另外一个问题,如果struct是这样的:


那么结果各位应该也知道了。好了,一些拓展问题,上面这个struct的内存是在栈中分配的,如果是用new运算符,使其在堆上面分配,那么结果是什么?各位可以亲手试一下,直接把答案全部说出来,就有点没有意思了,哈哈C++种、结构对象内存布局浅析


好啦,其实到这里,文章还没完,要再进一步讲一些

下面要讨论类,即class。

按照惯例,继续先上代码,请猜猜下面各个类其sizeof的返回值是什么:

struct node1 {int a;char b, c, d, e;long long f;};struct node2 {int a;int b;long long c;};

相信上面的内容,对于我来说,应该能应付大部分sizeof题目,后来看了一些资料,发现有牛人已经对这个问题作过文,这里附上拓展阅读的链接:

拓展阅读1:C++虚函数表解释

拓展阅读2:C++对象的内存布局(上)

拓展阅读3:C++对象的内存布局(下)


******<转载说明>******

转载注明:诚实的偷包贼

原文地址:http://blog.csdn.net/fanfank/article/details/12175585

******<转载说明/>******

热点排行