Copy a pointer to an element of an array of pointers
-
How can I copy a pointer to an item of an array pointer such as below?
ClassA *ptr = new ClassA[5]; ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; // Error &(ptr[1]) = ptr2; // Error
What should I do? -
How can I copy a pointer to an item of an array pointer such as below?
ClassA *ptr = new ClassA[5]; ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; // Error &(ptr[1]) = ptr2; // Error
What should I do? -
How can I copy a pointer to an item of an array pointer such as below?
ClassA *ptr = new ClassA[5]; ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; // Error &(ptr[1]) = ptr2; // Error
What should I do?ptr[0] is an actual object, not a pointer to an object. Therefore, it needs to be assigned the value of ptr1, not the address of ptr1. ptr[0] = *ptr1;
-
How can I copy a pointer to an item of an array pointer such as below?
ClassA *ptr = new ClassA[5]; ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; // Error &(ptr[1]) = ptr2; // Error
What should I do? -
How can I copy a pointer to an item of an array pointer such as below?
ClassA *ptr = new ClassA[5]; ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; // Error &(ptr[1]) = ptr2; // Error
What should I do?the line
ClassA *ptr = new ClassA[5];
defines an array of 5 ClassA objects, not an array of 5 ClassA pointers. If you want an array of 5 ClassA pointers, your declaration will have to be:ClassA **ptr = new ClassA*[5];
and then you will be able to execute the following code (or similar):ClassA *ptr1 = somePointerOFClassA; ClassA *ptr2 = somePointerOFClassA; ptr[0] = ptr1; ptr[1] = ptr2;
Now, coming back to your previously mentioned code block.Unfortunately, once you have defined an array as you have :ClassA *ptr = new ClassA[5];
You cannot actually change the address of an element within that array, ie, you cannot do this:&ptr[0] = ptr1
Hope this helps some. Cheers, Peter ------------------------------------------- 99 little bugs in the code, 99 little bugs, Fix 1 bug, recompile.... 101 little bugs in the code...