Exa*_*gon 6 c++ stack runtime c++14
我想知道是否有办法以编程方式确定 C++ 中正在运行的程序的堆栈大小。如果是这样,是否还有一种方法可以以编程方式确定程序在运行时使用了多少堆内存?为了确定堆的大小,我可以通过重载new和delete运算符,但我认为这不适用于智能指针。
我试图通过以下方式实现它:
int main(){
const char STACK_BEGIN = 'A';
//a lot of code
register unsigned long int STACK_NOW asm("%esp");
long long int stack_size = (reinterpret_cast<int>(&STACK_BEGIN) - STACK_NOW);
//rest of code
}
Run Code Online (Sandbox Code Playgroud)
我大致是这样解决的:
int main(){
const char STACK_BEGIN = 'A'; //a lot of code
register unsigned long int STACK_NOW asm("%esp");
long long int stack_size = (reinterpret_cast<int>(&STACK_BEGIN) - STACK_NOW); //rest of code
}
Run Code Online (Sandbox Code Playgroud)