c++ - Lifetime of temporary objects -


i encountered following code (roughly):

struct stringbuffer {     stringbuffer(const char* string) {strcpy(m_buffer, string);}     const char* c_str() const {return m_buffer;}     char m_buffer[128]; };   std::string foobar() {     const char* buffer = stringbuffer("hello world").c_str();     return std::string(buffer); } 

am correct in assuming after line:

    const char* buffer = stringbuffer("hello world").c_str(); 

buffer pointing pointer in deconstructed stringbuffer object?

to answer question @ end, yes, buffer stray pointer.

to answer more general question lifetime of temporary values, suggest read this reference says:

... temporaries destroyed last step in evaluating full-expression (lexically) contains point created...

which case means once assignment buffer done, temporary object destructed.


Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - Bypass Geo Redirect for specific directories -

php - .htaccess mod_rewrite for dynamic url which has domain names -