我想檢查我的操作系統的內存限制是否工作。所以我用這個簡單的C程序:如何檢查內存限制
#include <iostream>
#include <cstdlib>
int main()
{
const size_t GB = 1024 * 1024 * 1024;
const size_t mem = 1 * GB;
std::cout << "allocating " << mem << " bytes" << std::endl;
void* p = malloc(mem);
if (p) { std::cout << "memory allocated" << std::endl; }
else { std::cout << "cannot allocate memory" << std::endl; }
char a;
std::cin >> a;
free(p);
}
我與-O0
編譯,但是當我看向性能監視器我看到我的a.out
僅使用爲128Kb。爲什麼我看不到1 GB?
將其標記爲'C++'.. – VoidPointer
因爲您不真的*使用所有分配的內存。開始寫入隨機位置,你會看到一些變化。 –
...爲了擴展@VoidPointer的評論,改用'new'和'delete'。 –