http://www-ee.eng.hawaii.edu/~tep/EE160/Book/chap14/subsection2.1.1.8.html 这个页面说局部变量和传递的参数是在堆栈上分配的,所以我尝试了:
#include <stdio.h>
#include <stdlib.h>
#define A 2000000
#define B 2
typedef struct {
int a[A][A];
} st;
void fun(st s){}
void main()
{
st s;
//fun(s);
}
编译运行后没有报错。但是当我去注释时//fun(s)
,然后 SIGSEGV 被抓住了。谁能告诉我为什么?