为什么 QList 对象的大小是 4 个字节?

AAEM

当尝试QList使用sizeof(), function获取对象的大小时,它给了我 4 个字节。我试图更改列表中的项目数,它也给了 4 个字节?我试图改变列表中项目的类型,它又给了 4 个字节?

为什么项目数量或类型的变化不会影响对象大小?

Aurélien 蛋糕

要获取列表中的项目数,请使用QList::size()not sizeof()像这样的东西:

QList<MyObject> list;
list.append(object1);
list.append(object2);
int size = list.size();

sizeof()返回QList的大小,这与 Qt 类的情况一样,仅由一个成员组成:指向私有结构的指针。假设您使用的是 32 位操作系统,存储地址需要 4 个字节,因此您sizeof(list)返回 4。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么打包的struct的大小是5个字节而不是4个字节?

为什么字符缓冲区内容大小是 4 个字节?

为什么 sizeof(0xF) 是 4 个字节?

为什么lambda的大小为1个字节?

为什么arr [0]的大小是8个字节?

为什么 char* 需要 4 个字节而不是 1 个字节

为什么数据类型“字节”的大小是一个字节?

为什么2 2 3的大小为36个字节,而2 3 3的大小仅为24个字节?

用wget下载的图像大小为4个字节

为什么qsort恰好需要4个字节来对字符串文字进行排序?

为什么gdb告诉我x86-64上的指针是4个字节?

为什么我的Short在VB.net中包含4个字节

为什么结构的底层长度会增加到4个字节?

为什么int8_t的输出格式使用4个字节?

为什么在64位平台上BSTR长度前缀为4个字节?

为什么带有 %hu% 的 printf 从堆栈中取 4 个字节而不是 2 个?

为什么在C语言的4个字节上出现一个char字符

为什么在64位Linux上Option <f64>的大小为16个字节?

为什么32位.NET进程的引用类型的最小大小为12个字节

为什么压缩的Oops会为对象标头提供12个字节

为什么堆栈帧中局部变量数组的每个插槽都是4个字节,而不是JVM中的1个字节?

为什么在Turbo C编译器中sizeof(int)是2个字节,而在gcc Linux编译器中是4个字节?

long的大小为8个字节,那么如何在JAVA中将其“提升”为float(4个字节)?

为什么每个目录的大小为4096字节(4 K)?

当以网络字节顺序放置双精度数字时,为什么要以4字节的块大小完成?

为什么我们需要1,2,4,8个字节将逻辑变量存储在fortran中?

为什么打印char有时会在C中打印4个字节的数字

为什么python的serial.read、serial.read_until在4个字节后返回垃圾?

如何创建QList对象?