我问的原因:
#include <string.h>
using namespace std;
int main()
{
unsigned char file[512000];
unsigned char key[512000];
for(int i = 0; i < 512000; i++)
file[i] = key[i];
return 0;
}
当我在 Windows 上使用 cl.exe 编译它时,我得到一个大小约为 31kb 的可执行文件。每个缓冲区本身都是 500kb。这有什么意义?它的一部分会分配在堆上吗?如果我用数据初始化它们,那么大小是否正确?
最佳答案
在这种情况下,缓冲区将在程序的 stack space 上分配。在运行时。无需将它们静态内置到 exe
文件中。
关于c++ - exe 可以小于其最大的声明缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718403/