我是c
的新手int main(int argc,char *argv[]) {
char *p[1234567] = { NULL };
return 1;
}
给出Segmentation fault
如果我改为12345,它会起作用。
答案 0 :(得分:2)
这很可能是因为你的堆栈没有变量p
所需的1234567 * sizeof(char *)字节空间
答案 1 :(得分:2)
1234567指针的数组将超过4MB。这比许多系统上的线程的堆栈容量大。例如,如果我没记错的话,在Win32上,为线程堆栈保留的地址空间默认为1MB。