Invalid Cache depth



  • Hallo

    Wo könnte bei so einer Fehlermeldung das Problem sein??

    beim Debuggen sprint er hier her

    if ( !inuse( (FILE *)__piob[i] ) )
    

    was bestandteil von stream.c ist

    ich glaube das liegt bei einer zuweisung von char

    _sPathName = new char;
      strcpy(_sPathName, pathName);
    

    lasse ich die letzte Zeile weg ist auch der Fehler weg

    Nicht abgefangene Ausnahme in KardioProjekt.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Nicht abgefangene Ausnahme in KardioProjekt.exe (NTDLL.DLL): 0xC0000005: Access Violation.
    Invalid Cache depth
    Nicht abgefangene Ausnahme in KardioProjekt.exe (NTDLL.DLL): 0xC0000005: Access Violation.

    gruß mkgandalf



  • new char ? du reservierst nur platz für ein zeichen?



  • na ja in der Header ist die als char* definiert, ich dachte die sind ewig groß



  • warum umständlich wenn es einfach geht

    hab den Fehler gefunde

    habe es einfach als char str[MAX_PATH]
    definiert und das new weggelassen

    sorry für die Frage 😞



  • ich würde dir zum nutzen der string klasse raten, aus dem namespace std.
    damit bist du erstmal die sorgen los, und sie bietet komfort.



  • das stimmt, das Problem ist das ich in einer Klasse was hinzufüge die nicht von mir kommt und die sonst über eine Schnittstelle von mir angesprochen wird, normalerweise erledige ich solch sachen über QString von QT aber hier geht das nicht da dort explizit nach einem const char* verlangt wird.
    aber ohne pointer als feste Zuweisung der Größe geht das jetzt auch. Nicht wirklich schön aber funktioniert

    gruß mkgandalf



  • QString bietet aber auch z.b. die methode ascii an, die einen const char * liefert.
    std::string bietet c_str an, um einen zeiger auf const char zu erhalten.


Anmelden zum Antworten