Speicherloch im ifstream ?



  • Hallo,

    ich habe eine Funkfion die prüfen soll ob eine Datei
    im Unicode-Format vorliegt.

    Es wird einfach geprüft in welcher Reihenfolge die ersten Bytes der Datei
    vorliegen.

    Ich habe alles auskommentiert bis auf die Zeile die den ifstream öffnet.
    Das VCStudio6.0 meldet mir Speicherlöcher die durch diese Zeile erzeugt werden.
    Mache ich etwas falsch oder zuwenig ? Ich will das Speicherloch gern vermeiden.

    Gibt es evtl. eine Funktion die genauer prüft ob Unicode vorliegt ?

    char c1=-1;
    	char c2=-2;
    	int ic1,ic2;
    
    	ifstream ifs;
    
    	// Diese Zeile erzeugt im Visual Studio ein Memoryleak von 512... Bytes
    	ifs.open((const char*)pfName, ios::in);
    	ifstream ifs(pfName);
    	ifs >> c1 >> c2;
    	ifs.close();
    
    	ic1=c1;
    	ic2=c2;
    
    	return (ic1 == -1 && ic2==-2);
    


  • Mit dem gcc lässt sich dass wegen Redefinition von ifs garnicht erst kompilieren...



  • char c1=-1;
        char c2=-2;
        int ic1,ic2;
    
        ifstream ifs;
    
        // Diese Zeile erzeugt im Visual Studio ein Memoryleak von 512... Bytes
        ifs.open((const char*)pfName, ios::in);// diese oder die untere Zeile machen Probleme 
    // ifstream ifs(pfName);// diese oder die obere Zeile machen Probleme   
        ifs >> c1 >> c2;
        ifs.close();
    
        ic1=c1;
        ic2=c2;
    
        return (ic1 == -1 && ic2==-2);
    

    Ich habe die alternative Zeile die ich zum Testen eingebaut habe
    versehentlich dringelassen. Jetzt ist sie kommentiert


Anmelden zum Antworten