#include<iostream> #include <map> #include <memory> using namespace std; std::map<int, char*> my; std::pair<int, char*> test() { int a = 10; char buff[128]; sprintf(buff, "%d test", 99); return std::make_pair(a, buff); } int main() { my.insert(test()); for (auto iter = my.begin(); iter != my.end(); ++iter) { cout << iter->first << endl; cout << iter->second << endl; } return 0; }
a是临时变量,返回会被销毁,可能导致输出结果有问题
buff[128]是临时变量,返回会被销毁,可能导致输出结果有问题
my.insert(test());插入会报错