Не могу выделить память, используя MALLOC - PullRequest
0 голосов
/ 04 февраля 2012

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

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

Ответы [ 2 ]

3 голосов
/ 04 февраля 2012

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

Из документации :

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

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

1 голос
/ 04 февраля 2012

Подпись для 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);
...