?
Solved

Casting from pointer to int

Posted on 2000-04-04
5
Medium Priority
?
251 Views
Last Modified: 2010-04-02
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?

0
Comment
Question by:abulka
5 Comments
 

Expert Comment

by:ottenm
ID: 2686170
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
 

Author Comment

by:abulka
ID: 2686199
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
 
LVL 3

Accepted Solution

by:
GlennDean earned 20 total points
ID: 2686239
Instead of writing
pNode()->pUserField() = (void *) 2;
write
pNode()->pUserField((void *)2);
   Glenn
0
 
LVL 3

Expert Comment

by:mnewton022700
ID: 2686254
I work for Tom Sawyer and I can tell you that Glenn is definitely right. He fully deserves the enormous 5 point reward :)
0
 

Author Comment

by:abulka
ID: 2686327
Seems to work.  Much appreciated!  Thanks to mnewton, too.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, wh…
What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
Suggested Courses

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question