什么是堆栈重新分配以及何时发生?

What is stack reallocation and when does it happen?

据说你stack reallocation can happen。我不明白这一点。我认为 setjmp/longjmp 的全部意义在于保存堆栈,并且在 longjmp 返回时有效。该评论似乎暗示可以移动整个堆栈。这会抵消所有指针,所以我明白为什么应该避免它。但是什么时候堆栈重新分配发生?没听过这个词

关于堆栈重新分配的评论似乎只适用于 coro 堆栈,而不适用于一般的 C 堆栈

一般不会将一般的 C 堆栈传递给函数,而只是自己的实现如下:

 /*
  * Create a new coroutine from the given function, and with the
  * given stack.
  */
 EXPORT
 extern coro coro_new(_entry fn);

因此,setjmp/longjmp 将一如既往地安全使用。