Czy konieczne rzutowanie ??

0

Oto kodzik:


unsigned char *data;

void sample( int w, int h )
{
   data = malloc( w*h );
   memset( data, 0, w*h );
   wykonaj( (unsigned char *)data );  // <=== jaki jest cel rzutowania w tym miejscu ?
}

void wykonaj(  unsigned char *ucData )
{
  // ...
}

.... pytanie zawarte w komentarzu

0

Witam

Przede wszystkim funkcja malloc zwraca wskaźnik void*, zatem aby przypisać go do wskaźnika data(unsigned char*) musisz go zrzutować na ten typ bo inaczej wyleci błąd.

data =(unsigned char*)malloc( w*h );

Później wskaźnik jest już odpowiedniego typu i nie trzeba go rzutować.

Pozdrawiam

0

Witam

Przede wszystkim funkcja malloc zwraca wskaźnik void*, zatem aby przypisać go do wskaźnika data(unsigned char*) musisz go zrzutować na ten typ bo inaczej wyleci błąd.

data =(unsigned char*)malloc( w*h );

Później wskaźnik jest już odpowiedniego typu i nie trzeba go rzutować.

Pozdrawiam

Dzięki za wyjaśnienie :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1