wirre Zeichenfolge



  • Ich hab ein Problem mit Pointern, wobei ich nichmal weiss ob das überhaupt das Problem ist oder obs an dem Compiler (dev c/c++) liegt...
    der code stammt aus einem anfänger-tutorial und sieht folgendermaßen aus:

    #include <stdio.h>
    #include <conio.h>
    
    int main ( void )
    {
    
        char a[3];
        char *zeiger;
        zeiger = &a[0];
    
        a[0] = 'a';
        *(zeiger+1) = 'b';
        a[2] = 'c';
    
        printf ("\nFeldinhalt : %s\n",a);
        printf ("\nZeiger zeigt auf : %s\n",zeiger);
        getch(); 
    
    }
    

    bei mir kommt am ende immer eine komische zeichenfolge nach dem ersten und zweiten funktiosaufruf von printf raus, wobei die ersten 3 zeichen jeweils durch abc überschriben sind. mir würds jedoch reichen wenn nach abc nix mehr kommt 😉



  • In C müssen Strings nullterminiert sein.



  • Ode schrieb:

    #include <stdio.h>
    #include <conio.h>
    
    int main ( void )
    {
    
        char a[3];
        char *zeiger;
        zeiger = &a[0];
    
        a[0] = 'a';
        *(zeiger+1) = 'b';
        a[2] = 'c';
    
        printf ("\nFeldinhalt : %s\n",a);
        printf ("\nZeiger zeigt auf : %s\n",zeiger);
        getch(); 
    
    }
    
    #include <stdio.h>
    #include <conio.h>
    
    int main ( void )
    {
    
        char a[4];       /* hier war einer zu wenig */
        char *zeiger;
        zeiger = &a[0];
    
        a[0] = 'a';
        *(zeiger+1) = 'b';
        a[2] = 'c';
    
        a[3] = 0;       /* muss da hin damit printf weiss wann ende ist */
    
        printf ("\nFeldinhalt : %s\n",a);
        printf ("\nZeiger zeigt auf : %s\n",zeiger);
        getch(); 
    
    }
    


  • Ok vielen dank an euch beide! 2 antworten und das obwohls den beitrag erst seit 4 min(!!!) gab is echt ne spitzenleistung 😉



  • Ode schrieb:

    ...is echt ne spitzenleistung 😉

    ist ja auch ein spitzenforum hier 🙂


Anmelden zum Antworten