我从调试器获取访问冲突错误,但我真的不知道为什么。我怀疑这会是一件非常愚蠢的事情。 我有目录项的数组:访问冲突写入位置插入到阵列
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 - 它确实有效,因为我可以将内容打印到控制台。 –