Inhalt eines void* Arrays beschreiben??
-
Hi
Ich habe folgendes Problem ich habe ein Array bestehend aus void*.
void* array[] = {&var1, &var2};
ich möchte nun die Inhalte von var1 und var2 beschreiben. Bekomme aber wenn ich
*array[1] = ...; ein warning: dereferencing 'void*' pointer
Weiss jemand wie man dies bewerkstelligen kann ?MfG Thunder
-
ein void* zeig in den speicher - typenlos.
dh ein void* hat keine ahnung auf was er zeigt.
wenn du ihm jetzt dereferenzierst (also *p schreibst) muesste er wissen wieviel bytes er aus dem speicher lesen muss (das weiss er aber nicht) deswegen kann man void* nicht dereferenzieren.man schreibst deshalb:
(int)array[0]=3;man castst ihn also auf einen bekannten typen und dereferenziert ihn -> da er dann ein int* ist, weiss er, dass er zB 4 bytes aus dem Speicher holen muss.
wenn du byteweise arbeiten willst, empfiehlt sich ein char*
-
Vielen dank hast mir damit sehr geholfenn so ähnlich hab ich es mal probiert und mir auch gedacht aber habs wohl falsch gemacht.
-
Hm jetzt habe ich das Problem immernoch wenn ich einer Funktion den Zeiger des arrays übergebe und dann so wie beschrieben mit *(int
drauf zugreife.
f(array);
f(void *array) {...}