我尝试编写返回字符串数组的函数(位于某个目录中的所有文件和文件夹)。代码如下。当我使用此代码将信息输出到控制台时(使用下面的注释代码),它工作得很好,但是当我尝试返回指向指针的指针时,wchar_t
我获得了每个元素都等于 enother 的数组(所有元素都相同)。我做错了什么?
wchar_t path[SIZE];
wchar_t *PathCreator(wchar_t *dir, wchar_t *fileName)
{
int j = 0;
while(j < SIZE)
{
path[j] = '\0';
j++;
}
int i;
i = 0;
while(*dir != '*' && *dir != '\0')
{
path[i] = *dir;
i++;
dir++;
}
wchar_t *t = fileName;
while(*t != '\0')
{
path[i] = *t;
i++;
t++;
}
path[i] = '\0';
return path;
}
wchar_t* allFlsArr[SIZE];
int i = 0;
wchar_t **GetAllFiles(wchar_t* dir)
{
WIN32_FIND_DATA file;
HANDLE search_hendle = FindFirstFile(dir, &file);
if(search_hendle)
{
do
{
wchar_t *p = PathCreator(dir,file.cFileName);
//std::wcout << p << std::endl;
allFlsArr[i++] = p;
std::wcout << i << std::endl;
}
while(FindNextFile(search_hendle, &file));
allFlsArr[i] = '\0';
}
CloseHandle(search_hendle);
return allFlsArr;
}