list<char*>定义使程序出现运行错误
自己找个一下错误,就是注释了第二句(list<char*> ch_lst;这句)就好了
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
char *ch;
list<char*> ch_lst;//就是这个定义有问题,编译能通过,但是运行就出问题,注释掉就好了
cout<<"input a string:";//这句程序打印出来之后就运行出错了。
while(cin>>ch){
ch_lst.push_back(ch);
cout<<"append to the list successfully!"<<endl;
cout<<ch<<endl;//用来调试的
cout<<"output successfully!"<<"input again!"<<endl;
};
return 0;
}
[解决办法]
你注释掉还是错的,不要认为能运行就是对的。ch都没分配内存,cin>>ch怎么进行啊!你把char*改成string不是更好吗?
[解决办法]
char *ch; 这里只是一个指针,没有指向实际分配的内存。
[解决办法]
char ch;
while(cin>>ch){
char *pch = new char;
*pch = ch;
ch_lst.push_back(pch);
[解决办法]