FindFirstFile memory leak ??? -> programmabsturz



  • hi leute,
    nur ob ihr da mal schnell drauf gucken könnt, ob ich üwo einen fatalen fehler drin hab. thx

    void FindFiles(string StartFo) {
    	HANDLE FileHandle;
    	WIN32_FIND_DATA WFDStr;
    	string StartFo2 = "";
    	string StartFoFE;
    	StartFoFE += StartFo;
    	StartFoFE += "\\*.*";
    
    	remove("SONGS.txt");
    
    	fstream q;
    	string rt;
    	q.open("SONGS.txt", ios::out | ios::app);
    
    	FileHandle = FindFirstFile(StartFoFE.c_str(), &WFDStr);
    	while (FindNextFile(FileHandle, &WFDStr)) {
    		string FFound = WFDStr.cFileName;
    
    		if (WFDStr.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY && FFound
    				!= ".." && FFound != ".") {
    			StartFo2 = StartFo + "\\" + WFDStr.cFileName + "\\";
    			FindFiles(StartFo2);
    		}
    
    		if (WFDStr.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY && FFound
    				!= ".." && FFound != ".") {
    
    			char ext[300];
    			strcpy(ext, PathFindExtension(FFound.c_str()));
    
    			if ((strcmp(ext, ".mp3") == 0)) {
    
    				rt += StartFo;
    				rt += "|";
    				rt += WFDStr.cFileName;
    				q << rt.c_str() << endl;
    				rt.clear();
    			}
    			delete [] ext;
    		}
    	}
    	FindClose(FileHandle);
    	q.close();
    }
    

  • Mod

    delete [] ext;
    

    Kann ja wohl nicht richtig sein!
    2. Und jeder rekursive Aufruf der Funktion löscht die vorherige SONGS.TXT Datei?
    3. Warum weißt Du das Ergebnis von PathFindExtension nichtgleich einem std::string zu?

    Und überhaupt: Warum überhaupt so kompliziert? 😉



  • mensch bin ich ****.
    Danke man 🙂
    Zu bescäftigt und zu viele sachen gleichzeitg.. und dan passiert mir sowas.
    THY


Anmelden zum Antworten