This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Classic C problems, need help!
- From: "Glover George" <dime at gulfsales dot com>
- To: <gcc-help at gcc dot gnu dot org>
- Date: Fri, 3 May 2002 12:42:43 -0500
- Subject: Classic C problems, need help!
Hello,
Please forgive me if this is off topic as I don't know where to ask it.
I am having the hardest time with this and was wondering if anyone can
give me some tips. I have a function that I want to perform some
operations and return a string. This string will never be assigned to a
variable, merely only passed to a function. What that function does
with it I have no idea.
So at first I thought well why not just return a char * which has been
newed. Well the problem with this is if I don't assign it to a
variable, then how do I delete it? And if I do assign it to a variable,
and I pass the variable to the function, how do I know that if I delete
it, the function won't go trying to use that again? I mean, does the
function have to actually take care of making a copy of it first?
Ok, so if I choose to do this. If I create a char array in my function,
say char sting1[20]; and then I assign the value to it, and do a return
string1; I know that it is out of scope once the function returns, but
doesn't it stay alive for at least a second like when it is returned and
passed as an unamed variable to another function?
Of course I don't have this problem with returning integers, but with
strings I don't understand. If you return something and don't give it a
name, such as a string, how can it be dynamic, and yet you delete it if
you have nothing to delete it with?
I know to the trained C veteran, this sounds stupid, but this is the
only area I've struggled with in C and c++, and would hope that someone
on here can give me some insight into this and explain the proper ways
to return strings from a function and not have to worry about it
dissapearing. Thank you very much.
Dime