C++ 查找结构的内存消耗 我想知道我的结构将占用多少内存。请考虑下面的代码 struct tNode{ short data; tnode *left; tnode *right; tnode *student; }

C++ 查找结构的内存消耗 我想知道我的结构将占用多少内存。请考虑下面的代码 struct tNode{ short data; tnode *left; tnode *right; tnode *student; },c++,pointers,memory,structure,C++,Pointers,Memory,Structure,所以我知道数据是2个字节,但是*左、*右和*学生,他们将消耗多少内存以及如何计算它。您正在寻找 返回类型的对象表示形式的大小(以字节为单位) 用法示例: #include <iostream> class tnode; struct tNode { short data; tnode *left; tnode *right; tnode *student; }; int main() { std::cout <

所以我知道
数据
是2个字节,但是
*左
*右
*学生
,他们将消耗多少内存以及如何计算它。

您正在寻找

返回类型的对象表示形式的大小(以字节为单位)

用法示例:

#include <iostream>

class tnode;

struct tNode {
       short data;
       tnode *left;
       tnode *right;
       tnode *student;
};

int main()
{

  std::cout << sizeof(tNode) << std::endl;
  return 0;
}
你在找那个

返回类型的对象表示形式的大小(以字节为单位)

用法示例:

#include <iostream>

class tnode;

struct tNode {
       short data;
       tnode *left;
       tnode *right;
       tnode *student;
};

int main()
{

  std::cout << sizeof(tNode) << std::endl;
  return 0;
}

sizeof(tNode)
没有给你一个满意的结果吗?谢谢你提供了这个有用的函数,但我还需要知道它是如何计算出它需要16个字节。@storyteller它不是一个函数,它是一个运算符。如果你现在第一次看到它,从你的项目中退一步,读几天a可能是明智的。啊,我明白了。arigatoDid
sizeof(tNode)
没有给你一个满意的结果?谢谢你提供了这个有用的函数,但我还需要知道它是如何计算出它需要16个字节。@Storyteller它不是一个函数,它是一个运算符。如果你现在第一次看到它,从你的项目中退一步,读几天a可能是明智的。啊,我明白了。但是我的电脑正在输出16bytes@newprogrammer输出是实现dependent@newprogrammer在C++中,不是每个类型都限制为固定大小。它们在不同的实现上有所不同。@newprogrammer那么您的计算机可能使用32位指针,而Ayxan的计算机使用64位指针。@newprogrammer编译器出于性能原因调整结构的大小。更具体地说,它在结构的成员之间填充字节,以确保成员对齐。这里有更多信息:但是我的电脑输出16bytes@newprogrammer输出是实现dependent@newprogrammer在C++中,不是每个类型都限制为固定大小。它们在不同的实现上有所不同。@newprogrammer那么您的计算机可能使用32位指针,而Ayxan的计算机使用64位指针。@newprogrammer编译器出于性能原因调整结构的大小。更具体地说,它在结构的成员之间填充字节,以确保成员对齐。更多信息请点击此处: