Gast
#1342442
Hallo Leute!
Ich programmiere unter C und habe folgendes Problem:
Ich lade ein binäres File in ein char Feld.
Es handelt sich aber um 32-Bit-Werte, was bedeuetet, dass
ich später mit einem 32-Bit-Pointer darauf zugreifen muss.
Vorher habe ich es folgendermaßen gelöst:
union uniontyp{
unsigned long lbuffer[1000];
unsigned char abuffer[4000];
}u;
In den u.abuffer habe ich das File reingeladen und greife
später mit u.lbuffer[zeiger]; darauf zu.
Das Problem ist jetzt, dass die Größe von 1000 und 4000
fix sind und ich beim Compilieren wissen muss, wie groß das
File maximal ist. Diese Lösung ist meiner Meinung nach
sehr unschön und unflexibel.
Danach hätte ich es mit malloc versucht:
union uniontyp{
unsigned long *lbuffer
unsigned char *abuffer
}u;
u.(*lbuffer)=(void*)malloc(samples);
Der Compiler meldet mir einen Fehler. Geht das überhaupt
in einem Union ein malloc zu verwenden?
- Bzw, wie könnte ich das Problem auf elegante Weise lösen.
Vielen Dank im Voraus.
Schöne Grüße
Martin