Finde Fehler nicht



  • Ich finde einen Fehler nicht.

    Ich habe eine Funktion die ein Interger als Rückgabewert hat.

    int Funktionname();

    wenn ich jetzt das mache:

    int error=Funktionname();

    bekomme ich die Fehlermeldung das read nicht ausgeführt werden kann.

    mache ich nur das

    Funktionname();

    gibt es keinen Fehler.

    Kann doch nicht sein das wenn ich den Rückgabewert in eine Variable speichern will er einen Fehler bringt.

    Hattet ihr mal sowas?



  • hmm...
    c oder c++?

    Bei C kann er das nicht miteinander vereinbaren, eine Variablen zu deklarieren und ihr in der gleichen Zeile den Wert einer Funktion zuzuweisen.

    Gibt die funktion denn auch nen Wert zurück??

    Ansonsten poste mal den Code.



  • DocJunioR schrieb:

    Bei C kann er das nicht miteinander vereinbaren, eine Variablen zu deklarieren und ihr in der gleichen Zeile den Wert einer Funktion zuzuweisen.

    Quatsch.



  • Hab den Fehler 🙂

    int TestFunktion()
    {
    	char cAdapter[128];
    
    	int AdapterCount=CountGFXDrivers();
    	int AdapterModes=CountGFXModes(0);
    
    	sprintf(cAdapter,"Anzahl Adapter %d\n Anzahl Modes %d ",AdapterCount,AdapterModes);
    
    	MessageBox(NULL,cAdapter,"Adapter gefunden",MB_OK);
    
    	return 0;
    }
    

    Der Fehler war hier char cAdapter[128]; Ich habe am Anfang zu wenig Speicher reserviert. Dieser hat den Rückgabewert überschrieben. Jetzt bin ich auf Nummer sicher gegeangen. 😃

    PS: Wo ich schon hier bin. Wie würde das in C++ aussehen? Ich meine das mit den String?



  • PS: Wo ich schon hier bin. Wie würde das in C++ aussehen? Ich meine das mit den String?

    #include <sstream>
    
    void TestFunktion() {
      std::ostringstream adapter;
      adapter << "Anzahl Adapter " << CountGFXDrivers()
              << "\nAnzahl Modes " << CountGFXModes(0);
      MessageBox(0, adapter.str().c_str(), "Adapter gefunden", MB_OK);
    }
    

Anmelden zum Antworten