Please support our C++ advertiser: Programming Forums
![]() |
Hi,
Please see the code below.
Now my question is
<< moderator edit: added [code][/code] tags >>
So I assume, object pointers are passed to functions in a different way compared to primitive type pointers. Can anyone pl. comment on this.
Please see the code below.
void Allocate( char* s )
{
s = (char*)malloc( 100 );
}
int main( )
{
char* s = NULL;
Allocate( s );
strcpy( s,"Test");/*I know that this will fail. b'coz I still have a NULL pointer in s. Initially s was pointing to NULL, and from the function Allocate 100 bytes of memory was allocated in some memory location, and address of s was made to point to that location. But inside the main, s is still pointing to NULL. Pl. correct me if I am wrong.*/
}Now my question is
void Allocate( Base* s )
{
s = new Base;
}
int main( )
{
Base* obj = NULL;
Allocate( obj );
obj->some_member = 20; // this works...
}So I assume, object pointers are passed to functions in a different way compared to primitive type pointers. Can anyone pl. comment on this.
•
•
Join Date: Jul 2005
Location: London
Posts: 164
Reputation:
Rep Power: 4
Solved Threads: 5
All passing is by value unless otherwise specified. As you want the changes reflected back to the calling function you will need to pass either a reference to a pointer a char*& or a pointer to a pointer a char** or alternatively return a pointer by value rather than void.
object pointers and primitive type pointers behave exactly the same. Your code is wrong its that simple.
object pointers and primitive type pointers behave exactly the same. Your code is wrong its that simple.
![]() |
Similar Threads
Other Threads in the C++ Forum
- Purpose of Pointers? (C++)
- C++ pointers problem (C++)
- quicktime VR object loading problem (Graphics and Multimedia)
Other Threads in the C++ Forum
- Previous Thread: substitute of sizeof operator
- Next Thread: how to open/run flash movies from c++
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)





Linear Mode