c-无法使用MALLOC分配内存



这里出了什么问题,有人能帮我吗?无法使用malloc分配内存。。。

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

在对ReadFile的调用中有&ReadFileBuffer。应该向ReadFile传递一个指向缓冲区的指针,而不是指向缓冲区指针的指针。

来自文件:

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);

相关内容

  • 没有找到相关文章