c++ 为什么不输出count,函数就崩了?

代码如下:

void ListPath(string path, list& files)
{
//文件句柄
long hFile = 0;
int count=0;
//文件信息
struct _finddata_t fileinfo;
string p;
if((hFile = _findfirst(p.assign(path).append("\*").c_str(),&fileinfo)) != -1)
{
do
{
count++;//这一行注释掉没事
cout<<count<<endl;//这一行注释掉程序崩了
if((fileinfo.attrib & _A_SUBDIR))
{
if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0)
{
ListPath( p.assign(path).append("\").append(fileinfo.name), files );
}
}
else
{
int len=strlen(fileinfo.name);
if(fileinfo.name[len-1]=='t'&&fileinfo.name[len-2]=='x'&&fileinfo.name[len-3]=='t'&&fileinfo.name[len-4]=='.')
{
ifstream filein(StringToChar(p.assign(path).append("\").append(fileinfo.name)));
stringstream buffer;
buffer<<filein.rdbuf();
string source(buffer.str());

                    if(KMP(source))
                    {
                        files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                    }
                }
            }
        }
        while(_findnext(hFile, &fileinfo)  == 0);
        _findclose(hFile);
    }
}

这是你的代码吗?上面的没对齐,如果是吗,那么具体崩溃的时候有没有报什么错误?

 void ListPath(string path, list& files)
{
    //文件句柄
    long hFile = 0;
    int count=0;
    //文件信息
    struct _finddata_t fileinfo;
    string p;
    if((hFile = _findfirst(p.assign(path).append("\*").c_str(),&fileinfo)) != -1)
    {
        do
        {
            count++;//这一行注释掉没事
            cout<<count<<endl;//这一行注释掉程序崩了
            if((fileinfo.attrib & _A_SUBDIR))
            {
                if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0)
                {
                    ListPath( p.assign(path).append("\").append(fileinfo.name), files );
                }
            }
            else
            {
                int len=strlen(fileinfo.name);
                if(fileinfo.name[len-1]=='t'&&fileinfo.name[len-2]=='x'&&fileinfo.name[len-3]=='t'&&fileinfo.name[len-4]=='.')
                {
                    ifstream filein(StringToChar(p.assign(path).append("\").append(fileinfo.name)));
                    stringstream buffer;
                    buffer<<filein.rdbuf();
                    string source(buffer.str());
                    if(KMP(source))
                    {
                        files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                    }
                }
            }
        }while(_findnext(hFile, &fileinfo)  == 0);
        _findclose(hFile);
    }
}