-3

Может ли кто-нибудь помочь мне, что здесь происходит не так? Am не в состоянии выделить память с помощью таНос ...Не могу выделить память с помощью MALLOC

bReadFile = ReadFile(hConsoleFile, &ReadFileBuffer, MaxCharToRead, &CharsRead, NULL); 
+3

Насколько велик файл? Сколько у вас памяти? – Mysticial

+1

Что происходит, когда вы пытаетесь запустить этот код? – ObscureRobot

+0

Нам нужна дополнительная информация - вы получаете ошибку времени компиляции (ошибка при запуске компилятора) или ошибка времени выполнения (ошибка при запуске программы?) Каков текст сообщения об ошибке? –

ответ

3

Вы &ReadFileBuffer в вызове ReadFile. Вы должны передать ReadFile указатель на буфер, а не указатель на указатель на буфер.

documentation От:

lpBuffer [out] 
    A pointer to the buffer that receives the data read from a file or device. 

Поскольку ReadFileBufferявляется указатель на буфер, это то, что вы должны передать.

1

Сигнатура 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); 
Смежные вопросы