/STACK (Stack Allocations)

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at -STACK (Stack Allocations).

STACK:reserve[,commit]

  
## Remarks  
 The /STACK option sets the size of the stack in bytes. Use this option only when you build an .exe file.  
  
 The `reserve` value specifies the total stack allocation in virtual memory. For ARM, x86 and [!INCLUDE[vcprx64](../Token/vcprx64_md.md)] machines, the default stack size is 1 MB.  
  
 `commit` is subject to interpretation by the operating system. In Windows WindowsRT it specifies the amount of physical memory to allocate at a time. Committed virtual memory causes space to be reserved in the paging file. A higher `commit` value saves time when the application needs more stack space, but increases the memory requirements and possibly the startup time. For ARM, x86 and [!INCLUDE[vcprx64](../Token/vcprx64_md.md)] machines, the default commit value is 4 KB.  
  
 Specify the `reserve` and `commit` values in decimal or C-language notation.  
  
 Another way to set the size of the stack is with the [STACKSIZE](../Topic/STACKSIZE.md) statement in a module-definition (.def) file. **STACKSIZE** overrides the Stack Allocations (/STACK) option if both are specified. You can change the stack size after the .exe file is built by using the [EDITBIN](../Topic/EDITBIN%20Reference.md) tool.  
  
### To set this linker option in the Visual Studio development environment  
  
1.  Open the project's **Property Pages** dialog box. For details, see [Setting Visual C++ Project Properties](../Topic/Working%20with%20Project%20Properties.md).  
  
2.  Select the **Linker** folder.  
  
3.  Select the **System** property page.  
  
4.  Modify one of the following properties:  
  
    -   **Stack Commit Size**  
  
    -   **Stack Reserve Size**  
  
### To set this linker option programmatically  
  
1.  See [StackCommitSize](assetId:///P:Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool.StackCommitSize?qualifyHint=False&autoUpgrade=True) and [StackReserveSize](assetId:///P:Microsoft.VisualStudio.VCProjectEngine.VCLinkerTool.StackReserveSize?qualifyHint=False&autoUpgrade=True) properties.  
  
## See Also  
 [Setting Linker Options](../Topic/Setting%20Linker%20Options.md)   
 [Linker Options](../Topic/Linker%20Options.md)


Show: