В любой момент ваше приложение не обязательно имеет любую физическую память.
Если ваше приложение некоторое время ожидает операции ввода-вывода и пользователь начинает редактировать видео, ваше приложение может вообще исчезнуть из физической памяти. Он существует только в файле подкачки. Когда операция ввода-вывода завершается, и один из ваших потоков должен возобновить работу, вы получаете некоторую физическую память.
Все, что вам действительно нужно выделить, это части адресного пространства вашего процесса. Части этого могут быть сопоставлены с файлами (такими как ваш EXE или любые собственные библиотеки DLL, которые не нужно перебазировать). Другие части могут быть «распределением памяти», но на самом деле это просто означает, что они сопоставлены с местами в файле подкачки.
Ничто из этого не является "действительно" памятью в каком-либо надежном смысле.
Вещь, которую вы наверняка исчерпаете, - это место в вашем адресном пространстве. Если вы выделите порции по 100 МБ несколько раз, плюс несколько меньших, то вскоре вы фрагментируете адресное пространство через некоторое время (что по умолчанию дает вам достаточно места только для примерно 20 таких блоков, и любой данный блок должен вписаться в одну смежную область).