View Single Post
  #4  
Old 03-13-2002, 05:09 PM
theCoder
Sarnak
 
Join Date: Jan 2002
Posts: 90
Default

I don't know if this is the problem, but the implementation of strreplace contains a local static char array newstringza (OT: what's with all the za's all over the code?), which it fills with the new constructed string. At the end, it returns this array as a char*. I don't remember all the intricacies of C++, but I think this may be a problem (I'll write a quick program to see). A quick fix would be to change the last line (line 92) from:

return newstringza;

to:

return strdup(newstringza);

which allocates a buffer the correct size, copies the string to the buffer, and returns a pointer to the buffer.

Or, you could try moving the declaration of the char[] outside the function (just before it should work).

It's probably not a good idea to return a pointer to a local variable in any case. Anyone with more extensive C++ experience want to comment (I've been doing Java too long...).
Reply With Quote