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.