Casting from pointer to int

This code works:
  if ((int) pNode()->pUserField() == 2) .....

but am not sure how to do the opposite ie. plug a value back into the object pNode.   I have tried

  pNode()->pUserField() = (void *) 2;

but this doesn't compile.  How do I set the pUserField to an integer value?

abulkaAsked:
Who is Participating?
 
GlennDeanConnect With a Mentor Commented:
Instead of writing
pNode()->pUserField() = (void *) 2;
write
pNode()->pUserField((void *)2);
   Glenn
0
 
ottenmCommented:
Short answer?  Use another function (not pUserField()).  i.e., pUserField() is a function that, if the second line you show doesn't compile, does not return something that can show up on the left hand side of an assignment operator (an "l-value").  Maybe you can rewrite the function pUserField() (and note, it is a function, not a variable, as the name would lead you to believe) to return by reference.  Then you'd be all set!
0
 
abulkaAuthor Commented:
I am using a 3rd party library and cannot rewrite or add new functions.  It should be possible to do with the existing function.  Here is more info on the UserField property:



//
// This method sets a void pointer to a user field. This pointer is
// originally initialized to NULL.
//

void * TSDigraph::pUserField(void * pUserField);


//
// This method gets a void pointer to a user field. This pointer is
// originally initialized to NULL.
//

void * TSDigraph::pUserField();


0
 
mnewton022700Commented:
I work for Tom Sawyer and I can tell you that Glenn is definitely right. He fully deserves the enormous 5 point reward :)
0
 
abulkaAuthor Commented:
Seems to work.  Much appreciated!  Thanks to mnewton, too.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.