# Rechenaufgabe mit zeiger und scanf



## canyakan95 (10. Apr 2016)

hallo ich habe versucht meine größe in m zu berechnen dabei wollte ich scanf und zeiger verwenden ...
kriege es aber nicht hin ..hoffe könnt mir weiterhelfen..
und ist das erste mal das ich mit zeigern arbeite.

Mein code: 
void groesse()
{
int groesse_cm;
printf(" Wie groß bist du in cm?");
scanf("%d",&groesse_cm);
float *groesse_m = groesse_cm/100;
printf("Du bist %f groß", *groesse_m);
}


----------



## Dompteur (10. Apr 2016)

Die Zeile:

```
float *groesse_m = groesse_cm/100;
```
enthält einen Fehler. Du weist einem Pointer einen berechneten Wert zu.
Entweder verzichtest du an dieser Stelle auf Pointer und schreibst einfach:

```
float groesse_m = groesse_cm/100;
```
Oder du brauchst eine Speicherstelle, deren Adresse du dir holst.

```
float groesse_m;
float * pGroesse_m = &groesse_m;
```

Wenn du Pointer verwendest, dann musst du immer auch dafür sorgen, dass sie auf einen gültigen Speicherbereich zeigen.


----------



## InfectedBytes (12. Apr 2016)

zudem ist groesse_cm ein int und die zahl 100 ebenfalls, daher wird hier nur integer division durchgeführt. Daher solltest du hier einfach durch 100f teilen.


----------

