V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TESTFLIGHT2021
V2EX  ›  程序员

Windwos 程序的 stack 和 heap 尺寸是多大啊?

  •  
  •   TESTFLIGHT2021 · 20 小时 38 分钟前 · 287 次点击
    一般从来没关注过这个
    网上看到 stack 大小是 1M 但是实际使用中 ,申明几十 M 的 数组也没问题啊?
    请教大神们,咋回事
    2 条回复
    cnbatch
        1
    cnbatch  
       20 小时 2 分钟前
    程序编译时可以自行指定栈大小,默认设置 1M ,可以自己改:
    https://learn.microsoft.com/en-us/cpp/build/reference/stack-stack-allocations?view=msvc-170

    该设置的相应截图:
    https://stackoverflow.com/questions/14080982/visual-studio-c-c-array-size-unhandled-exception-stack-overflow

    另外很好奇你的数组是怎样声明的?

    我试了下:
    char test[10240000] = {};
    std:cout << sizeof(test) << "\n";

    默认设置不改,运行的时候会爆栈
    GeekGao
        2
    GeekGao  
       30 分钟前
    Stack 最大限制:Windows 通常限制单个线程栈最大为 1GB 可以通过编译器参数调整初始大小
    Heap 最大理论限制:32 位系统下约 2GB ( 3GB ),64 位系统下仅受限于物理内存和页面文件大小.实际使用时受系统资源限制
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2983 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 08:46 · PVG 16:46 · LAX 00:46 · JFK 03:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.