我直接给你看了代码.
#include <iostream>
#include <stdio.h>
class A {
public:
A(const std::string& name){
std::string aname = "HAHA_" + name;
std::cout << aname << std::endl;
}
~A(){
std::cout << "Done." << std::endl;
}
};
int main() {
size_t len = 5;
char szTmp[30] ={0};
snprintf(szTmp,sizeof(szTmp),"Getlist_V2_%zd",len);
A a(std::string(szTmp));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
预期结果如下:
HAHA_Getlist_V2_5
Done.
Run Code Online (Sandbox Code Playgroud)
但它根本没有输出任何东西.当我更换A a(std::string(szTmp));时
A a(szTmp);,一切都没问题.很长一段时间我很困惑.