1. 堆和栈的区别 堆栈缓存方式不同:这么说是事实但不太严谨,在Intel x86后续的体系中,L1缓存不再存储数据,转而存储L2的指令代码。栈主要存储函数调用的指针和局部变量,也不适合存储数据。如果在程序中定义很大的数组,是很差的编程习惯。这样栈存储在L1缓存是有原因的。栈的空间比较小,在Windows下是1M,大概是2^20/2^2=2^18个int,换句话说,在程序中调用2^18个函数?显然是不会的,这样就可以理解栈的大小是比较小的。而Linux的默认栈是8M,这些参数都可以修改。因为有些情况下就必须使用大数组,比如在FPGA的HLS就有可能定义大数组,因为用不了malloc、new
1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务