Fehler im Code finden????



  • --linuxuser-- schrieb:

    oder einfacher

    oder richtig

    char mi_buff[17];
    

    Falls es Kompiler gibt, die dieses Array nicht automatisch mit '\0'
    füllen, möge man mich berichtigen.

    Jockel



  • Jockelx schrieb:

    char mi_buff[17];
    

    Falls es Kompiler gibt, die dieses Array nicht automatisch mit '\0'
    füllen, möge man mich berichtigen.

    Jockel

    Was der Compiler draus macht kann ich dir nicht sagen, aber der Standard sagt, dass der Inhalt unbestimmt ist.



  • Jockelx schrieb:

    oder richtig

    char mi_buff[17];
    

    Falls es Kompiler gibt, die dieses Array nicht automatisch mit '\0'
    füllen, möge man mich berichtigen.

    ich empfehle, für den test vorher den stack vollzumüllen.

    void muell(){
       printf("%f",sin(3,14));
    }
    void mess(){
       char mi_buff[17];
       int i;
       for(i=0;i<17;++i)
          printf("%d ",mi_buff[i]);
    }
    void test(){
       muell();
       test();
    }
    

    kann das mal einer testen?



  • Hallo Allerseits,
    ich danke euch für die zahlreiche Antworten.

    Ich habe mein Problem folgendes gelöst und zwar indem ich nach dem memset die char Arrays mit NULL terminiert habe.

    char enc[15]='\0';

    Danke und Grüße
    karomi



  • @karomi:
    Aber nach dem memset 😉

    @volkard:
    Meine Behauptung scheint eh völlig falsch zu sein. Selbst ohne deine
    muell-Funktion hab ich keine Nullen im Array.

    Jockel



  • Jockelx schrieb:

    Falls es Kompiler gibt, die dieses Array nicht automatisch mit '\0'
    füllen, möge man mich berichtigen.

    Compiler ist unwichtig. Es kommt nur darauf an, wo das Array definiert wird, global oder lokal.

    @--linuxuser--
    Bitte nicht Nullzeiger (NULL) mit Nullzeichen ('\0') verwechseln, auch wenn erstes durchgeht.



  • Jockelx schrieb:

    Meine Behauptung scheint eh völlig falsch zu sein. Selbst ohne deine
    muell-Funktion hab ich keine Nullen im Array.

    Jockel

    Richtig erkannt. Deine Behauptung ist nur korrekt, wenn du dein Array global definierst.



  • @--linuxuser--
    Bitte nicht Nullzeiger (NULL) mit Nullzeichen ('\0') verwechseln, auch wenn erstes durchgeht.

    das ist mir schon klar aber ich hab mir gedacht man will NULL haben...



  • --linuxuser-- schrieb:

    @--linuxuser--
    Bitte nicht Nullzeiger (NULL) mit Nullzeichen ('\0') verwechseln, auch wenn erstes durchgeht.

    das ist mir schon klar aber ich hab mir gedacht man will NULL haben...

    Wieso sollte man NULL haben wollen 😕



  • TactX schrieb:

    --linuxuser-- schrieb:

    @--linuxuser--
    Bitte nicht Nullzeiger (NULL) mit Nullzeichen ('\0') verwechseln, auch wenn erstes durchgeht.

    das ist mir schon klar aber ich hab mir gedacht man will NULL haben...

    Wieso sollte man NULL haben wollen 😕

    weis ich auch nicht


Anmelden zum Antworten