类内存布局中的虚表项空间占用
发布日期:2021-06-30 22:10:27
浏览次数:2
分类:技术文章
本文共 1205 字,大约阅读时间需要 4 分钟。
前言
今天发现一个类,手工算的不对, 写了测试程序发现,虚表项的空间占用也有可能不是4个字节, 和数据成员基本数据类型的最大size有关。
记录
// testCase1.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#include #include #include #include "Test1.h"#include "Test2.h"int main(int argc, char* argv[]){ CTest1* pTest = new CTest1; CTest2* pTest2 = new CTest2; int iSize = sizeof(CTest1); /// size = 24 /** 类内存布局 007D4A30 1C 90 42 00 .怋. // 虚表,占用空间有对齐 007D4A34 CD CD CD CD 屯屯 // 空了4个字节,是虚表占用的空间和类最大基本数据类型(double)的size相关么? 007D4A38 01 CD CD CD .屯. // char 007D4A3C 02 00 00 00 .... // int 007D4A40 00 00 00 00 .... // double 007D4A44 00 00 08 40 ...@ */ int iSize2 = sizeof(CTest2); /// size = 16 /** 类内存布局 004E4A88 38 90 42 00 8怋. // 虚表,占用空间无对齐 004E4A8C 01 CD CD CD .屯. // char 004E4A90 02 00 00 00 .... // int 004E4A94 03 CD CD CD .屯. // char */ if (NULL != pTest) { pTest->fnv1(); pTest->fnv2(rand()); pTest->fn3(); pTest->fn4(rand()); delete pTest; pTest = NULL; } if (NULL != pTest2) { delete pTest2; pTest2 = NULL; } printf("END\n"); return 0;}
转载地址:https://lostspeed.blog.csdn.net/article/details/52589841 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月24日 08时01分58秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
腾讯AI语音识别API踩坑记录
2019-04-30
linux中Oops信息的调试及栈回溯—Linux人都知道,这是好东西!
2019-04-30
C语言与javascript的不同之处
2019-04-30
Android照相功能驱动层中HAL的实现(基于OK6410开发板+OV9650摄像头)
2019-04-30
Android Camera HAL设计初步
2019-04-30
解决 Ubuntu 下风扇一直高速旋转的方法
2019-04-30
Linux下,不能以根用户身份运行google chrome 浏览器的解决办法
2019-04-30
ubuntu 12.10 root 登录 无声音解决方法
2019-04-30
GNU ARM汇编伪操作(Directives) 命令集
2019-04-30
CONFIG_DM9000_BASE是0x20000000还是0x20000300
2019-04-30
纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)
2019-04-30
shello脚本#!/bin/sh -e中的会影响ln的使用
2019-04-30
Linux环境下Jlink配置
2019-04-30
Jlink for Linux之烧写
2019-04-30
arm-linux-gdb的安装
2019-04-30
Ubuntu安装insight6.8
2019-04-30
arm-linux-insight的使用
2019-04-30
Ubuntu12.10下安装sun-java6-jre jdk
2019-04-30
GNU ARM Eclipse Plug-in for Eclipse
2019-04-30