Я хотел бы выделить память, чтобы читать (целые) очень большие файлы (15-25 Gb) в моей программе на C++. Я использовал off64_t
, чтобы получить начальную и конечную позиции файла, который я хочу прочитать, которые получены из моего файла, используя функцию ftello64
. Теперь я хотел бы получить разницу между ними в переменной с именем size и затем распределить ее по массиву char. Однако, несмотря на успешную компиляцию, мой код работает неправильно. Я попытался size = (off64_t)(end_of_mem-start_of_mem);
где start_of_mem
и end_of_mem
оба off64_t
номера, но когда я запускаю свою программу, выходРассчитать разницу между двумя значениями off64_t C++
Starting position in memory (start_of_mem):152757
Ending position in memory (end_of_mem):15808475159
Size: -1371546782
Какой вариант я должен использовать, чтобы получить это право? Заранее благодарим за помощь и предложения.
Это очень малопонятно, что вы можете получить 15 ГБ свободной кучи. Вы должны искать файлы с отображением памяти в своей ОС. – sbabbi
Пожалуйста, покажите небольшой, компилирующий код, в котором есть проблема. –
Вам нужно показать тип данных для 'size' и как вы показываете значения –