Это хороший вопрос C ++. Решение простое, но требует приличного понимания циклов, распределения памяти, проверки ошибок, вывода на консоль и целочисленных типов данных. Не расстраивайтесь - если это действительно ваше первое знакомство с программированием , то это безумие, когда кто-то ожидает, что вы ответите на этот вопрос.
Подсказка дает вам все необходимое. Я разобью его на этапы, и вы скажете нам, какая часть доставляет вам неприятности.
Use a loop
allocate, say, 1000000 bytes
add 1 to an unsigned long long counter
- выяснить
when the allocation fails
без сбоев
print the counter times 1000000.0
Разве размер свободного магазина не зависит от оперативной памяти компьютера?
Да. Это также зависит от других программ, запущенных на компьютере в данный момент.
Как я могу вычислить размер этой большой памяти в байтах?
Компьютер должен знать размер своей собственной памяти для правильной работы. Где-то информация существует или может быть рассчитана.
Что такое длинный без знака?
В C ++ 11 он гарантированно равен как минимум 64 битам. До C ++ 11 это целочисленный тип данных без знака, по крайней мере такой же большой, как unsigned long
.