小编Nai*_*iem的帖子

为什么 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;
}
Run Code Online (Sandbox Code Playgroud)

我试图了解内存空间分配。通常 int 内存大小为 4 个字节。但是,当我初始化一个Stackint 数据类型时std::stackStack大小为 80 字节。

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

c++ stack gcc memory-management libstdc++

1
推荐指数
1
解决办法
80
查看次数

标签 统计

c++ ×1

gcc ×1

libstdc++ ×1

memory-management ×1

stack ×1