堆和栈内存分配问题

时间:2021-02-20 02:23:37

全局变量或数组和malloc是在堆上分配内存,函数内部定义的变量和数组是在栈上分配的内存。栈上可分配内存的大小与编译器有关,一般是1M,但是为了保险起见一般在函数内部定义数组的时候大小最好不要超过4096,即在栈上定义数组大小不超过4096,否则会引发很奇怪的难以想象的错误。

在堆上分配的内存大小可以很大,但是也是在内存大小允许范围内。