2 Pluspunkte 0 Minuspunkte
In C hat ein int 32 bit und auch ein float. Wie kann ich aber in einem int Array ein einzelnes Float speichern?
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Du kannst ein Float nicht ein einfach in einem Integer Array speichern. Du kannst aber ein Integer Array initialisieren und das Float dann an die Adresse im Speicher kopieren.

int stack[10] = {0};

float f = 3.14f;

int offset = 0;

// in das array einfügen
memcpy(stack + offset, &f, sizeof(float));

// aus dem array auslesen, in neuer variable speichern und ausgeben
float f_new;
memcpy(&f_new, stack + offset, sizeof(float));
printf("%f", f_new);

// du kannst es auch ohne zwischenspeichern ausgeben mit hilfe eines pointers
printf("%f", *(float*)&stack[offset]);

von (716 Punkte)