Я пытаюсь проверить, работают ли ограничения памяти в моей ОС. Поэтому я использую это просто гр программу:Как проверить пределы памяти
#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
использует только 128Кб. Почему я не вижу 1 ГБ?
Отметьте его как 'C++' .. – VoidPointer
Поскольку вы не * действительно * не используете всю выделенную память. Начните писать случайные местоположения в нем, и вы увидите некоторые изменения. –
... И чтобы развернуть комментарий от @VoidPointer, вместо этого используйте 'new' и' delete'. –