Was macht dieses Prog.?



  • 1. kommt bei

    #include <stdio.h>
    
    #define SIZE 26
    
    int main()
    {
      char text[SIZE]="Versuchs du lieber mal!!!\0";
    
      puts(text);
    
      return(0);
    }
    

    kein Fehler!!!!!!!!!!
    2. muss ich die Grösse angeben weil ich zufallsbuchstaben reinschreibe!

    for(x=0;x<=(SIZE-1);x++)
    {
        z=rnd();
        if((z>='a'&&z<='z')||(z>='A'&&z<='Z'))
        {
            arr[x]=z;
        }
        else
        {
            x--;
        }
    }
    

    Aber wie gesagt wird der quelltext überarbeitet und steht deshalb gerade nicht zur Verfügung!!!!

    gruß hohesC



  • Doch Fehler:

    $ cat t.c
    #include <stdio.h>
    
    int main(void) {
      printf("%d\n", sizeof("Versuchs du lieber mal!!!\0"));
    
      return 0;
    }
    $ gcc t.c && ./a.out
    27
    

    Die Zeichenkette ist 27 chars lang, also reichen 26 nicht aus, also ein Buffer Overflow, also ein typischer Heisenbug.



  • Toll Hansi Hinterseer mein Compiler hats akzeptiert!

    Nur weil dein Compiler \0 nicht als ein sondern als zwei chars ansieht!

    dann tipe für dich 27 ein Mr.Schlaubergerbug

    oder setz für \0 ein ' ' leerzeichen!



  • hohesC schrieb:

    oder setz für \0 ein ' ' leerzeichen!

    ein leerzeichen ist genausowenig 'nicht da' wie \0
    belegen beide ein char (zuviel)



  • \0 ist nur ein Zeichen. Du hast aber zwei \0s an deinem String hinten dran.

    Und wenn du nicht so ruppig wärst, hätte ich dir jetzt sowohl erklärt, warum das so ist, als auch, warum es nichts bringt, da ein Leerzeichen hin zu schreiben, als auch warum es nicht bedeutet, dass das richtig ist, wenn dein Compiler das so frisst.



  • Ist doch auch wurst ob 1 char zuwenig odernicht....
    Sorry das ich so"ruppig" war! 😉
    0xdeadbeef = 11011110101011011101111011101111=?

    sag mir lieber was das für ne zahl ist?



  • hohesC schrieb:

    0xdeadbeef = 11011110101011011101111011101111=?
    sag mir lieber was das für ne zahl ist?

    jedenfalls keine primzahl, teilbar durch 11 😉



  • Boah, was ist das denn jetzt wieder fürn bekloppter Thread?
    @hohesC: Was willst du jetzt eigentlich? Wenn du deinen Ursprungspost rausnimmst, ist der ganze Thread Quark. Das nimmt ja schon trollige Ausmaße an.



  • Vergesst diesen Thread!!!
    Helft lieber dem 373773 oder so!!!
    Adiéu 😃 ich zock jetz WC3 TFT



  • hohesC schrieb:

    Vergesst diesen Thread!!!
    Helft lieber dem 373773 oder so!!!
    Adiéu 😃 ich zock jetz WC3 TFT

    roflmao

    Aber die Signatur find ich gut 😃



  • Ich weiss zwar nicht worum es ging - aber bitte nicht die Frage löschen. Auch wenn sie vielleicht peinlich war, oder so.

    Denn das Forum lebt ja auch davon, dass viele Fragen schoneinmal beantwortet wurden - wenn jetzt jeder eine Fragen nach der Beantwortung löscht, dann verliert das Forum ja 😞

    Und Titel ändern ist auch ganz böse.

    Naja, sieh das als Tadel an und merks dir fürs nächste mal, ok?



  • ok
    😞


Anmelden zum Antworten