在 Linux 系统中如果栈空间足够,分配大容量的缓冲区是不是只是“不好的习惯”?我指的是在堆栈中分配 300-500 KB 对象,在 8 MB 堆栈中。或者这样做会引起任何错误吗? 此外,有没有关于如何使用堆栈内存的指导方针?
是的,这是一种不好的习惯。那么大的对象应该是动态分配的(或静态的)。没有例外。 如果你的程序有一天要在默认堆栈大小较小的系统上使用呢?例如Windows.. 那么你可能会在一个函数调用中就“吃掉”一半的堆栈。
ulimit -s 8192
。 - foragerDev