I am a Java noob. I have been able to grasp the concept of converting C/C++ pointers into Java references and this has gone fairly smoothly.
I hit a piece of code that has pointers to pointers (ie **ptr). I need to dereference the pointer and change the value of the pointer it is pointing to (ie *ptr = &newthing;)
This seems alot tougher in java. Does anyone have any ideas on how to solve this issue? Quick google search turned up nothing.
Here's a code example in C++. I want to get something similar working in java but the ptr_to_ptr variable is a problem:
struct _coord
{
int x;
int y;
_coord * next_coordinate;
} coordinate_t;
coordinate_t buffer[100];
coordinate_t * head;
coordinate_t ** ptr_to_ptr;
if (wednesday)
{
ptr_to_ptr = &head;
}
else
{
ptr_to_ptr = &head->next_coordinate;
}
*ptr_to_ptr = &buffer[3]; // <<
解决方案
I'll answer my own question. I could not find any easy way to do a pointer to a pointer (reference to a reference) in java. So I refactored the code to use arrays of references, and array indices instead of pointers. I think this will work (it coded easily) but I have not tested it yet.