C++ 堆空间分配测试 - 确定系统最大可分配内存
在 C++ 中,堆空间的分配由'new' 操作符来完成。为了测试系统中最大可以分配多少字节的数据,可以使用循环不断分配内存,并检查分配是否成功,直到分配失败为止。
下面是一个示例代码:
#include <iostream>
int main() {
size_t maxSize = 0;
size_t stepSize = 1024 * 1024; // 每次增加 1MB
while (true) {
try {
char* data = new char[maxSize + stepSize];
delete[] data;
maxSize += stepSize;
} catch (std::bad_alloc&) {
break;
}
}
std::cout << "最大可分配内存大小:" << maxSize << " 字节" << std::endl;
return 0;
}
上述代码会不断尝试分配内存,每次增加1MB,直到分配失败为止。最后输出的'maxSize'就是系统中最大可分配的字节数。
需要注意的是,不同的操作系统和硬件环境对可分配的内存大小有限制,因此最终的结果可能会受到系统限制而小于实际可用内存的大小。
原文地址: https://www.cveoy.top/t/topic/bhrB 著作权归作者所有。请勿转载和采集!