作者yhn0tgb60 (呦厚厚)
看板C_and_CPP
标题[问题] 练习的程式发生"应用程式发生错误"
时间Sat Apr 4 21:45:34 2009
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
int *a,b=0;
a=new int;
do{
cin>>a[b];
b++;
}while(a[b-1]!=0);
}
在执行後
如果我输入的数字个数在3个以下就不会有问题
可是如果我输入超过3份资料 再下一个资料输入0要结束时
就会出现应用程式出现错误的讯息 ???
这是为什麽???
谢谢了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.163.42
1F:→ james732:a=new int[b]; 这样写吧?? 04/04 21:46
2F:→ yhn0tgb60:我两种都试过了 我会出现应用程式发生错误 04/04 21:48
3F:→ james732:你的 while 回圈结束条件有问题吧?? 04/04 21:49
4F:→ james732:为什麽要写 while(a[b-1]!=0); 呢?? 04/04 21:50
5F:→ james732:C++可没有保证你的 a[b] 会等於零 04/04 21:51
6F:→ yhn0tgb60:我想写说当使用者输入的数字为0时 while 就结束 04/04 21:51
7F:→ james732:突然发现我会错意了 XD 不过你的程式码也真的误很大啊... 04/04 21:52
8F:→ james732:请改用 vector 才能达成你想做的事情 04/04 21:53
9F:→ yhn0tgb60:怎麽说?? 请指点一下吧 谢谢罗 XD 04/04 21:53
10F:→ MOONRAKER:不需要vector吧 while(a[b-1]!=0)这种写法很常见 04/05 01:49
11F:→ MOONRAKER:但我认为这真是有够烂的 远不如一个break来得简单明了 04/05 01:50