Hi !
>Btw, I know I can 'return "string"' in order to return a string from a
>char* function, but if I have a local buffer, how would I return a
string
>in the same manner without returning the address of the local buffer?
> Maybe str_dup()? (its defined in utils.c)
Don't even think about doing that !!!!!!!!!!!!
This is the classical example of a memory leak !
Everytime you pass this point you will have some bytes of
memory less and some garbage more in memory until you crash.
Use this instead:
foo()
{
static str[20];
strcpy(str,"YEA!");
return str;
}
But if you would do that in circle like static buf[8192];
Everytime you do it with gcc it makes your executeable 8KB
bigger and it will allocate e.g: 100 times 8KB instead of
3 times as in the current version of circle. Which really
doesn't seem to be a big deal since circle isn't too much
concerned about memory efficiency.
If you again use buffers that just fit, you are likely to
write out of bounds and crash.
Cat.
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/ _/_/
_/_/ Thomas Katzlberger _/_/
_/_/ katzlbt@vuse.vanderbilt.edu _/_/
_/_/ @aBlackNeXT.called.garfield _/_/
_/_/ http://www.vuse.vanderbilt.edu/~katzlbt/ _/_/
_/_/ _/_/
_/_/ "You can tune a file system, but you can't tune a fish." _/_/
_/_/ UNIX man page for tunefs. _/_/
_/_/ _/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
This archive was generated by hypermail 2b30 : 12/07/00 PST