【模板】手工栈(扩栈)

由于windows下的评测极其容易爆内存栈,然而部分LJ OJ依然在用windows的服务器,以下手工扩栈代码(比赛禁用!)
const int main_stack=16;    
char my_stack[128<<20];    
int main() {    
  __asm__("movl %%esp, (%%eax);\n"::"a"(my_stack):"memory");    
  __asm__("movl %%eax, %%esp;\n"::"a"(my_stack+sizeof(my_stack)-main_stack):"%esp");    
  tmain();    
  __asm__("movl (%%eax), %%esp;\n"::"a"(my_stack):"%esp");    
  return 0; //add stack copy copy!!!   
}
用法,将这个复制到程序末尾,将原本的int main() 改成tmain()即可
posted @ 2018-05-06 12:30  Newuser233  阅读(11)  评论(0)    收藏  举报