Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

type casting error, please help

This topic is 6138 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

greetings, I am usiing Nate Miller''s tga file loading code. When I try to compile it I keep getting type casting errors. i.e.''='': cannot convert from ''void *'' to ''unsigned char*'' ================================================================ //getRGBA //reads in rgba data for a 32bit image unsigned char *getRGBA (FILE *s, int size) { unsigned char *rgba; unsigned char temp; int bread; int i; // rgba =(unsigned char *) malloc(size * 4); rgba = malloc(size * 4); if (rgba == NULL) return 0; bread = fread(rgba, sizeof(unsigned char), size * 4, s); //tga is stored in bgra, make it rgba if (bread != size * 4) { free (rgba); return 0; } for (i = 0; i < size * 4; i+=4) { temp = rgba; rgba[i] = rgba[1 + 2]; rgba[1 + 2] = temp; } texFormat = GL_RGBA; return rgba; } =============================================================== When i rewrite it to rgba =(unsigned char *) malloc(size * 4); the error goes away. Although, malloc uses a void * and a void pointer is able to point to any type of object. Why do I get the error? Or maybe I just copied the code down wrong. Thanks in advance. ----------------------------- "There are ones that say they can and there are those who actually do." "...u can not learn programming in a class, you have to learn it on your own."

Share this post


Link to post
Share on other sites
Advertisement
rgba = malloc(size * 4);

Hmmm, if its anything like some of the wierd stuff I"ve been experiencing try doing it like this:

rgba= (unsigned char) (malloc(size*4));

I have no idea if that will work... I prefer using ''new'' (which in case you want to know, is easier,
and here is how you do it:

rgba= new unsigned char [size*4];

------------------------------
Trent (ShiningKnight)
E-mail me
OpenGL Game Programming Tutorials

Share this post


Link to post
Share on other sites
its cause youre using c++. the above error won''t happen with c. c++ has more rigorous type checking, so stick a cast before it

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!