sizeof(file)
эта часть неверна. Вы хотите поместить Size
туда. sizeof(file)
дает вам размер переменной file
(которая соответствует размеру указателя, то есть 4 или 8 байт), а не размер самого файла.
Вы должны проверить возвращаемое значение ReadFile
В первой части кода вы используете переменную Size
, во второй части - переменную fileSize
. Это не выглядит правильно. Вы, конечно, не указали правильный размер fileSize
в коде, который вы разместили. Напишите полный код компиляции, пожалуйста.
Кроме того, у вас есть проблема с размером символа. Если ваша программа скомпилирована как Unicode, тогда TChar
станет широкоформатным (2 байта). Но вы относитесь к TChar
как к байту.
И вы тоже не проверяете результат своего malloc. Это будет null
, если файл слишком велик.