Archived

This topic is now archived and is closed to further replies.

Pointer Question

This topic is 4989 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey everyone! Quick pointer question Say I read in data from a file. I create a pointer to a char array and then pass it to a function that will create a linked list node with it: char *tempLine = new char[25]; //Pretend now I've filled it with data functionA(tempLine); Using a MessageBox in functionA(for ex), I see the data just fine. functionA creates the linked list node, and I try to send tempLine to its constructor: void functionA(char *tempLine) { MessageBox(NULL, tempLine, "blahblah", MB_OK); // shows the data Node *newNode = new Node(tempLine); } Now in the node, the constructor looks like: Node(char *getData) Now using a MessageBox to show getData...I just get a bunch of garbage. Anyone know what I'm doing wrong? [edited by - nologic on April 21, 2004 9:56:59 PM]

Share this post


Link to post
Share on other sites
Yeah I'm directly from a java background Learned it in the public university, trying to expand and learn other languages. Pointers are still a little bit of a mystery...

Magmai Kai Holmlor: Which code would you like to see? The node constructor?

Here is a cut-down version:


cStickyNode::cStickyNode(int idNum, char *getData, RECT oldClientRect)
{
next = NULL;
previous = NULL;
id = idNum;
cwnd = NULL;

MessageBox(NULL, getData, "What arrived in the node", MB_OK);

strcpy(data, getData);
}


[edited by - nologic on April 21, 2004 10:32:50 PM]

Share this post


Link to post
Share on other sites
Ah, then that explains why you''re doing silly things like "char *tempLine = new char[25]". Remember that in non-garbage-collected languages like C++, never allocate dynamically unless that''s actually what you need. So, tempLine should be allocated with "char tempLine[25];" because the size is known at compile time. If it weren''t, then dynamic allocation would be the way to go. And, unlike a garbage-collected language, you mustn''t forget to release the memory you''ve allocated—wipe your own ass.

Share this post


Link to post
Share on other sites