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


why does this not work??? hmmm

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