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

why does this not work??? hmmm

This topic is 4958 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

Hi all, I''m making a loader for MS3D format right now, but found a real surprising thing. Consider the following : byte *pBuffer contains the whole file by const byte *pPtr = pBuffer; eventually, I''m getting a value from this pointer to my model obejct. I thought, aha, lets just do this : m_numVertices = *(word *)pPtr; but guess what, I get some memory violation crash. However, I can OS << *(word *)pPtr;, so the number is definately valid ( it is the correct number). So, I need to have an int temp = *(word *)pPtr; then m_numVertices = temp; ~ The quesion is, why! I know that the cast is temporary. But for the assignment, it gets assigned to an int either way. So why do I require a middle man for this operation? It somehow seems wasteful. Woe on me, let thy flames roast my ignorance. Thanks.

Share this post

Link to post
Share on other sites