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