Beiträge von funztned

    Ist es moeglich in irgendeinem Universum von C++ ein leeres Array zu uebergeben dessen Länge groesser 0 ist?

    habe folgendes Problem mit einer Hashtabelle.: wenn beim Einfuegen der Werte in die Tabelle diese im Bulk also als Array uebergeben werden, dann kann bei meinem Programm die Tabelle an einer bestimmten Stelle einen falschen Wert enthalten.

    Fehler: Functor-Aufruf #4 mit falschem Wert

    werden die Wert einzeln uebergeben ist alles bestens, nach intensivem Testen 15+min mit ca 1Mil Kombinationen.


    add ( const E e[], size_t len){
    ...
    for(size_t i = 0; i<len; ++i){...}
    }

    Ich glaube du hast meine Frage schon beantwortet. Ich habe mich da in etwas verbissen das nicht viel Sinn macht.
    Ich bin dabei ein Programm für eine Hashtabelle zu schreiben, in die der user auf zwei Arten die Werte eingeben kann - deswegen die zwei add-Methoden. Bei der ersten Methode wird der Wert einzeln übergeben, bei der zweiten im Array. Implementiert habe ich es so, dass auch wenn ein einzelner Wert eingegeben wird, die Array-Methode aufgerufen wird. Ich bekomme leider nach wie vor einen Seg fault. meine Befürchtung war dass ein fehlendes Argument in meinem Programm zu einem undefinierten Verhalten führt, aber dein Hinweis auf den Referenzparameter hat diese Bedenken zerstreut. Ich denke dass mein Fehler an einer anderen Stelle im Programm sitzt. Danke für deine Hilfe. Alfred

    Danke fuer die Antwort. Aber das Problem ist die erste add-Methode

    add(const E &e) {add(&e, 1){add( &e, 1 );}

    e ist eine Referenz und kein Pointer und kann daher auch nicht einfach auf 0 ueberprueft werden (die Zahl 0 kann vom Anwender als reeller Wert eingegeben werden).

    Meine Frage bezieht sich auf die zweite add-Methode
    add(const E e[], size_t len);
    Was passiert mit len wenn das erste add ohne Argument aufgerufen wird, und was passiert mit e[], und vor allem wie kann ich das ueberpruefen? Das scheint wohl alles ziemlich basic zu sein, aber irgendwie stehe ich auf der Leitung.

    Hallo, ich habe ein Problem mit einem Methodenaufruf und komme nicht weiter. Wenn ich mit meiner add() Methode Elemente uebergebe, die ich dann in ein Array einfuege, moechte ich vor dem adden ueberpruefen, ob tatsaechlich in der Methode ein Element als Argument uebergeben wurde.

    add(const E &e) {add(&e, 1);}
    add( const E e[], size_t len ) {}

    Fuer die Anwendung muss sichergestellt sein, dass auch tatsaechlich ein Element uebergeben wird.
    add() sollte im Programm abgefangen werden, um undefiniertes Verhalten zu verhindern. Wie soll ich das implementieren, bin fuer jeden Hinweis dankbar.