itoa'd you so?
Michael L Torrie
torriem at chem.byu.edu
Wed Sep 19 15:29:10 MDT 2007
Michael L Torrie wrote:
>> std::string itoa(int in){
>> std::stringstream out;
>> out << in;
>> return(out.str());
> ^^^^^^^^^^^^^^^^^^^
> nope. you can't do that.
Nevermind. This one would probably work, if out.str() returns a new
object and not a reference to some internal object within the out object.
>
>> }
>>
>> and
>>
>> char* itoa(int in){
>> std::stringstream out;
>> out << in;
>> return(out.rdbuf.c_str());
> ^^^^^^^^^^^^^^
> can't do that either, at least safely.
This one, though, is definitely bad. By the time the caller gets the
char *, it's already pointing to invalidated stack space. Good way to
get a segfault or worse a buffer overrun that could lead to bad things.
More information about the PLUG
mailing list