首页 > 代码库 > 关于栈溢出和手工开栈
关于栈溢出和手工开栈
让我们从问题开始:
1. 为什么会出现栈溢出?
1. 在递归调用的时候,递归的深度过大就会导致系统栈溢出
2. 在函数中直接定义数组时数组空间开的过大,( 在函数中直接定义的数组是在栈区中申请空间,栈空间是有限的
如果是在函数外面定义,那么是在堆中申请,所以大数组需要在函数外面定义 )
2. 怎样进行手工开栈?
微软的编译器(C++)
#pragma comment(linker, "/STACK:102400000,102400000")
G++
int size = 256 << 20; // 256MB char *p = (char*)malloc(size) + size; __asm__("movl %0, %%esp\n" :: "r"(p));
关于栈溢出和手工开栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。