-3

任何人都可以幫助我,因爲這裏出了什麼問題? 我不能夠分配使用malloc內存...無法使用MALLOC分配內存

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

該文件有多大?你有多少內存? – Mysticial 2012-02-04 06:15:52

+1

當您嘗試運行該代碼時會發生什麼? – ObscureRobot 2012-02-04 06:16:42

+0

我們需要更多詳細信息 - 您是否收到編譯時錯誤(運行編譯器時出錯)或運行時錯誤(運行程序時發生錯誤?)錯誤消息的文本是什麼? – 2012-02-04 06:17:39

回答

3

您在調用ReadFile&ReadFileBuffer。您應該將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);