c++ 手动扩栈

来源:互联网 发布:数据库集群 编辑:程序博客网 时间:2024/05/24 04:23

有时候,我们需要dfs,但是当dfs深度较大时就会爆栈,这时候我们就需要手动扩栈,下面是实现代码:

#define OPENSTACK#include<bits/stdc++.h>using namespace std;int main(){    #ifdef OPENSTACK        int size = 64 << 20; // 64MB        char *p = (char*)malloc(size) + size;        #if (defined _WIN64) or (defined __unix)            __asm__("movq %0, %%rsp\n" :: "r"(p));        #else            __asm__("movl %0, %%esp\n" :: "r"(p));        #endif    #endif    OPENSTACK;//    #ifdef OPENSTACK//        exit(0);//    #else//        return 0;//    #endif}



 
原创粉丝点击