#include <iostream> #include <list> #include <cstdlib> #include <string> using namespace std; int js = 0; string *ace[20] = {0}; list<string> ::iterator iter; void begin() { cout << "**************************" << endl << "**************************" << endl << " 你在一次冒险中迷路了。。。。。" << endl << " 余下的食物和水只能坚持2天。。。。" << endl << " 3天时间,出不去便是死亡!" << endl << " (提示:每做出一次行动都会消耗0.5天的补给)" << endl << endl << endl << endl << endl << endl << endl << endl; } void p_ing() { list<string> a; a.push_front("不前进是不行的\n"); //1 a.push_back("发现武器,这对野兽或许有点用,但会占用自身能带的东西\n"); //2 a.push_back("什么东西都没发现,希望能早点出去。\n"); //3 a.push_back("这里好像来过。\n"); //4 a.push_back("这是什么,野兽的毛发?\n"); //5 a.push_back("咦,这是什么?\n噢,感谢上帝,有食物!\n"); //6 a.push_back("滚开,该死的东西\n"); //7 a.push_back("你看见一只野狼\n"); //8 a.push_back("这里居然还有药品"); //9 a.push_back("这里也没有东西,该死,出路在哪?\n"); //10 a.push_back("出口!出口!上帝,我出来了!\n"); //11 a.push_back("没想到,我居然会死在这里。。。。\n"); //12 a.push_back("制作:zeroyetj,谢谢游戏!\n"); //13 int i = 0; for (iter = a.begin(); iter != a.end(); iter++, i++) { js += 1; *ace[i] = *iter; } } void f_1() { int a; *iter = *ace[1]; cout << *iter << endl; cout << "1:向前走。"; cin >> a; switch (a) { case 1:void f_2(); break; } } void f_2() { int a; *iter = *ace[2]; cout << *iter << endl; cout << "1:向左走。" << "2:向右走。"; cin >> a; switch (a) { case 1:void f_3(); break; case 2:void f_4(); break; } } void f_3() { int a; *iter = *ace[3]; cout << *iter << endl; cout << "1:向前走。" << "2:向左走。" << "3:向后走。"; cin >> a; switch (a) { case 1:void f_5(); break; case 2:void f_6(); break; case 3:void f_2(); break; } } int main() { begin(); p_ing(); cin.get(); f_1(); } 还没有写完,想先运行一下,结果。。。。 |
|
指针或迭代器未初始化
|
|
我应该都初始化了啊,指针为0,迭代器为list里第一个元素 |
|
确定都有初值? |
|
有啊 |
|
10分 |
下断点,调试
|
好像没什么用啊,他会自动打开一个头文件,然后显示下面的代码 |
|
你的ace数组内保存的是string*内型的元素,但是你却尝试赋string型的值给它.
|
|
10分 |
*ace[i] = *iter; 改成 ace[i] = new string(*iter); |
*ace[i] = *iter; 谢谢,一直有事耽搁了,这样一来好像整个程序都要改的样子 |