首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

list<char*>定义使程序出现运行异常

2013-12-15 
listchar*定义使程序出现运行错误自己找个一下错误,就是注释了第二句(listchar* ch_lst这句)就好了#i

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;

热点排行