为什么 std::stack 内存大小比 C++ 中的通常大?

问题描述

这是测试我的问题的代码。

#include <iostream>
#include <stack>
using namespace std;
int main(){
    int num;
    int Array[1];
    stack<int> Stack;

    cout << "Int size " << sizeof(num) <<endl; // Output: Int size 4
    cout << "Array size " << sizeof(num) <<endl; // Output: Array size 4
    cout << "Stack size " << sizeof(Stack) <<endl; // Output: Stack size 80
    return 0;
}

我正在尝试了解内存空间分配。通常 int 内存大小为 4 个字节。但是,当我在 Stack 中初始化 int 数据类型的 std::stack 时,Stack 大小为 80 字节。

应该是 4 吗?为什么 std::stack 需要 80 个字节?或者 80 字节大小的堆栈内部实际上是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)