这是合法的代码吗?为什么?

时间:2016-03-14 08:24:24

标签: c++

假设我有一个函数将字符串作为char *

void GiveMeFileName(const char* fileName)

我称之为

std::string folderName("C:\\myFolder\\");
GiveMeFileName((folderName + "file.dat").c_str());

据我所知,它的工作正常,但为什么我脑子里有点摇摇欲坠。

当我将const char *添加到std :::字符串时,它会创建一个新字符串,我调用c_str()来将指针传递给函数。是否有可能在我调用c_str()并将其解析为指针后,临时创建的字符串将被删除,而我传递的内容实际上是指向对象残余的指针,因此可能会失败?

0 个答案:

没有答案