📝 MacOS堆栈大小

问题代码 #

char buffer[8*1024*1024];

问题分析 #

  • macos系统默认的堆栈大小为8MB,可以通过ulimit命令查看和修改。
  • 但是,如果代码中使用了大量的堆栈变量,可能会导致栈溢出,导致程序崩溃。
# 查看系统默认的堆栈大小
ulimit -a
# 或者
ulimit -s

解决方案 #

char *buffer = new char[8*1024*1024];

// 记得释放
delete[] buffer;