永发信息网

动态数组问题

答案:3  悬赏:70  手机版
解决时间 2021-02-13 12:15
为什么输入小于等于3个数字按0结束的时候没问题,当输入超过3个数字后就会有应用程序错误
#include <iostream>
#include <stdio.h>
using namespace std;
void main()
{

int i,num=0,*a,ele;
a=new int[num];
while(1)
{
cout<<"input data:\n";
cin>>ele;
if(!ele)
{
break;

}
else
{
num++;

a[num-1]=ele;

}

}

for(i=0;i<num;i++)
printf("%d ",a[i]);

}
最佳答案
1.分配数组的时候num=0,所以没分配空间
2.数组写满了也要跳出循环
3.完事后要释放数组
改成:
#include <iostream>
#include <stdio.h>
using namespace std;
void main()
{

int i,num=0,*a,ele;
a=new int[10];
while(1)
{
cout<<"input data:\n";
cin>>ele;
if(!ele)
{
break;
}
else
{
num++;
a[num-1]=ele;
if(num>9)
break;
}
}
for(i=0;i<num;i++)
printf("%d ",a[i]);
delete a;
}
全部回答
动态数组的意义在于让用户指定数组的大小,之后再申请空间,例如: int i,count; cout<<"input the length of array:\n"; cin>>count; int array[count]; for(i=0; i<count; i++){} 最后通过for指定循环次数进行赋值。。。 数组并不能真正的动态申请内存,只有链表才是真正意义上的动态申请内存,因为它可以申请一个节点空间链接到原链表的最后。数组则不可以,你的程序也是用指针操作,试图通过数组加指针的结合实现动态数组,其实也是不合理的。。。内存早就溢出了。。
几个问题: 1.动态数组就是用redim preserve 语句重新声明数组的下标;下标上界可以在你得到一个结果后用变量进行设定;如 dim zs() as long n = 0 for i =1000 to 1000000 if 质数(i) then '质数函数用来判断参数是否为质数,是就返回true该函数就由你自己来做吧 n = n + 1 redim preserve zs(1 to n) zs(n)=j end if 2.计算某个整数范围内的全部质数后,得到一个zs数组,用以下代码显示在text控件里 for i= 1 to ubound(zs()) t = t & zs(i) next i text = t 3.第1个问题里最终的n值就是那个数域里所有质数的个数了。可以用函数ubound(zs())求得。 如需更完整详细代码的可留email
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
取一个性格比较内向却很可爱的女生用的网名
广汽传祺洞口才子店怎么去啊,我要去那办事
2018年华为mate9 pro会降到多少钱
【不见天日的意思】不见天日的日是什么意思?
足康阁沐足养生会所在什么地方啊,我要过去处
合力汽车维修美容中心地址好找么,我有些事要
怎样用路径拉长字体某一笔画?
西汉任傲简介
宏林汽修厂地址好找么,我有些事要过去
天宇地址有知道的么?有点事想过去
已知y=√(1+ln²x),求dy
为什么说散户股民应尽量回避融资融券股票
刹车王和柔刹王的区别,有没有人可以分享一下
湖南卫视2010的时候电视剧里有龙的是叫什么电
网上我喜欢上了一个大我9岁的离婚男人
推荐资讯
行家,看看这串是不是一代盘龙纹呗,谢谢了!
多美依洗衣(迎宾街店)地址在什么地方,想过去
铜陵市司法局地址在哪,我要去那里办事
汽油精有用吗,有车友可以回答一下这个问题吗
小车胎压多少合适
机油过滤器多久换,各位车友有了解这个问题吗
怎么开天猫网店
汽车共振怎么解决,这个问题有什么好的解决方
巂在杜甫的诗里怎么读
乐谱、五线谱用英文表示哪个词?
东北有什么城市名字开头字母都是h
诺曼地精品咖啡生活广场地址有知道的么?有点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?