将c_str传递给临时对象的值返回printf

Pra*_*bhu 3 c++

以下代码是否有效?

A类{string m_name;
public:
string getName(){return m_name; }
}

.....
printf("%s",object.getName().c_str())
......

其中object.getName()返回一个临时字符串对象.

sha*_*oth 7

临时字符串将持续到printf()完成,所以是的,它是安全合法的.