hallo zusammen, ich habe ein komisches problem: ich habe eine normale for-scheife und möchte mir (erstmal) die schleifenvariable a auf einem display ausgeben. jedoch bekomme ich dort nur müll. for(unsigned int a = 0;a<5;a++) { char* str; sprintf(str,"%u",a); ks0108Puts(str); } eigentlich müsste ich ja auf dem Display hinterher stehen haben: 01234 ich möchte über die schleifenvariable ein array-element auslesen, jedoch zeigt es mir immer nur den inhalt des ersten array-elementes an... könnt ihr mir einen tipp geben, wo der fehler liegt, bzw. wo ich weiter suchen muss? vielen dank
1 | char str_buffer[10]; |
2 | for(unsigned int a = 0;a<5;a++) { |
3 | sprintf(str_buffer, "%u", a); |
4 | ks0108Puts(str); |
5 | }
|
.. Und jetzt überleg du, warum das geht ;) hth. Jörg
> for(unsigned int a = 0;a<5;a++) > { > char* str; Das ist ein uninitialisierter Zeiger. Er zeigt erstmal irgendwo in die Landschaft, solange du ihn nicht mit einem Wert belegst. > sprintf(str,"%u",a); Hier schreibst du dann per sprintf etwas dorthin, wo der Zeiger hinzeigt, also immer noch irgendwo in der Landschaft. > ks0108Puts(str); Hier ist dann Zufall, was rauskommt.
danke für die schnellen antworten! tja, dass mir so ein dummer fehler passiert... hab mir wohl zuviel gedanken um das drum-rum gemacht...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.