I've been skimming the discussions regarding strcpy() and friends, and the
thought arises that none of the string copy functions can be guaranteed to
be particularly safe, because the copy can always overwrite the memory
space allocated for the output buffer.
This lef me to go back to my C textbooks (which I hadn't liiked in almost
20 years!), and start looking for a way to figure out how to determine how
much space was allocated to a string. I was rather surprised to find that
I couldn't find such an animal! Am I missing something here?
Consider the simple case of:
my_strcpy (char *to, char *from)
{
while(*from)
{
*to = *from;
to++;
from++;
}
return (from);
}
The problem arises if the memory allocation for from exceeds that for to.
Sizeof doesn't work - is there any way to programatically determine the
memory allocation for "to"? I'm not interested in manual manipulation of
code, or suggestions on changing coding style - there should be a way in
the language to determine the size of an object at runtime. Any clues
here?
Thanks, guys!
This archive was generated by hypermail 2b30 : Mon Jan 27 2003 - 23:40:51 PST