【发布时间】:2011-07-31 05:01:12
【问题描述】:
我需要在调用 c 函数之前实例化一个 char[16384] 缓冲区。函数返回后,我会读取它的某些部分并丢弃它。
在栈上分配好还是应该用堆?
编辑:我将添加一些信息。该代码将在多个平台上运行,从 PC 到 iPhone,我猜堆栈空间不会那么大,但我不知道。
【问题讨论】:
-
什么系统,为什么不用malloc?
-
可能没问题,但取决于您的平台以及程序中发生的其他情况。
-
视情况而定。您始终可以在常规 x86(-64) 上更改堆栈大小。嵌入式可能会有所不同
-
我不会说太多。但无论如何都要把它放在堆上,因为那里更难滥用缓冲区溢出。
-
这段代码是可重入的吗?有多少线程将调用函数/方法?
标签: c++ c stack memory-management