ďťż

Ładny brzuch

dlaczego wykonując taki np. kod:
void* a=(void*)1; a+=1;
Kompilator zgłasza błąd 'void*: unknown size'?




dlaczego wykonując taki np. kod:
void* a=(void*)1; a+=1;
Kompilator zgłasza błąd 'void*: unknown size'?

Wskaźnik przekazuje adres pamięci, a ty róbujesz rzutować to na (void*). Tak mi się przynajmniej zdaje :rolleyes: jak nie to mnie nie zabijać :P
Użytkownik ryjcio edytował ten post 28 kwiecień 2005, 15:08
A mi sie jednak wydaje, ze na wskazniku void* nie mozna wykonywac operacji arytmetycznych.



acha, to pewnie dlatego, że zwykłe wskaźniki jeśli są dodawane to ta wartość jest mnożona jeszcze przez ich rozmiar, a w przypadku void nie ma takiego. ale czy nie istnieje jakiś sposób, aby zwiększyc wskaźnik do void?


A mi sie jednak wydaje, ze na wskazniku void* nie mozna wykonywac operacji arytmetycznych.

qwas ma rację

Jeżeli zwiększasz wskaźnik o 1, to przesuwasz go o 1*rozmiar_zmiennej_takiego_typu_jak_wskaźnik bajtów w pamięci. A gdzie masz wielkość typu void ? Właśnie dlatego błąd Unknown size (nieznany rozmiar)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •