Forum: Compiler & IDEs kein zugriff auf schleifen-variable


von mk (Gast)


Lesenswert?

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

von Jörg X. (Gast)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

> 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.

von mk (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.