<span style="font-size:14px;">#include <iostream>
#include <stdio.h>
#include <list>
using namespace std;
void test(list<char* >& lstr)
{
char buff[128] = {0};
sprintf(buff, "hello world!!!");
lstr.push_back(buff);
}
int main(void)
{
std::list<char* > lstr;
test(lstr);
cout << "324324324= " << lstr.size() << endl;
std::list<char*>::iterator t_iter = lstr.begin();
char* strSql = *t_iter;
printf("strSql:%s...\n", strSql);
cout << "1111= " << strSql << endl;
return 0;
}</span>
上面这段代码运行,输出有问题。
而下面这段代码是正确的:
<span style="font-size:14px;">#include <iostream>
#include <stdio.h>
#include <list>
using namespace std;
void test(list<char* >& lstr)
{
char* buff = new char[128];
sprintf(buff, "hello world!!!");
lstr.push_back(buff);
}
int main(void)
{
std::list<char* > lstr;
test(lstr);
cout << "324324324= " << lstr.size() << endl;
std::list<char*>::iterator t_iter = lstr.begin();
char* strSql = *t_iter;
printf("strSql:%s...\n", strSql);
cout << "1111= " << strSql << endl;
return 0;
}</span>