读书人

listlt;char*gt;定义使程序出现运行异常

发布时间: 2013-12-15 22:17:19 作者: rapoo

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);


[解决办法]

引用:
char *ch; 这里只是一个指针,没有指向实际分配的内存。

野指针,改成string吧
这个也改成 :list<string> ch_lst;

读书人网 >C++

热点推荐