Может ли кто-нибудь помочь мне, что здесь происходит не так? Am не в состоянии выделить память с помощью таНос ...Не могу выделить память с помощью MALLOC
bReadFile = ReadFile(hConsoleFile, &ReadFileBuffer, MaxCharToRead, &CharsRead, NULL);
Может ли кто-нибудь помочь мне, что здесь происходит не так? Am не в состоянии выделить память с помощью таНос ...Не могу выделить память с помощью MALLOC
bReadFile = ReadFile(hConsoleFile, &ReadFileBuffer, MaxCharToRead, &CharsRead, NULL);
Вы &ReadFileBuffer
в вызове ReadFile
. Вы должны передать ReadFile
указатель на буфер, а не указатель на указатель на буфер.
documentation От:
lpBuffer [out]
A pointer to the buffer that receives the data read from a file or device.
Поскольку ReadFileBuffer
является указатель на буфер, это то, что вы должны передать.
Сигнатура ReadFile()
это:
BOOL WINAPI ReadFile(
__in HANDLE hFile,
__out LPVOID lpBuffer,
__in DWORD nNumberOfBytesToRead,
__out_opt LPDWORD lpNumberOfBytesRead,
__inout_opt LPOVERLAPPED lpOverlapped
);
Второй параметр должен быть указателем на ваш буфер, а не указатель на указатель на ваш буфер. Это то, что вы получили, когда вы сделали &ReadFileBuffer
. Вызов должен быть:
bReadFile = ReadFile(hConsoleFile, ReadFileBuffer, MaxCharToRead, &CharsRead, NULL);
Насколько велик файл? Сколько у вас памяти? – Mysticial
Что происходит, когда вы пытаетесь запустить этот код? – ObscureRobot
Нам нужна дополнительная информация - вы получаете ошибку времени компиляции (ошибка при запуске компилятора) или ошибка времени выполнения (ошибка при запуске программы?) Каков текст сообщения об ошибке? –