我從調試器獲取訪問衝突錯誤,但我真的不知道爲什麼。我懷疑這會是一件非常愚蠢的事情。 我有目錄項的數組:訪問衝突寫入位置插入到陣列
typedef struct dirEntry{
TCHAR fileName[MAX_PATH];
DWORD fileSizeLow;
DWORD fileSizeHigh;
} dirEntry;
DWORD bufferSize = MEM_SIZE; //MEM_SIZE = 100
DWORD bufferPosition = 0;
dirEntry* dirBuffer;
dirBuffer = (dirEntry*) malloc(bufferSize*sizeof(dirEntry));
然後我把它傳遞給函數ListDirectory(_T("D:\\books\\*"), dirBuffer, &bufferSize, &bufferPosition)
我檢索裏面的文件信息的功能裏面,但是當我把這個:
dirBuffer[*bufferPosition].fileSizeLow = dataFound.nFileSizeLow;
_tcscpy(dirBuffer[*bufferPosition].fileName, dataFound.cFileName);
*bufferPosition++;
第一行產生一個異常。有人可以告訴我我做錯了什麼嗎?
編輯:的ListDirectory
守則要求:http://pastebin.com/ScbcqX7p
bufferPosition是一個有效的數字嗎?即它是否比bufferSize小? 此外,有dataFound已初始化? – NickLH
是的,很抱歉在提問中沒有提及,我已將它添加到片段中。 –
是的,它們是有效的數字。至於dataFound - 它確實有效,因爲我可以將內容打印到控制檯。 –