打印

C++动态数组问题

[复制链接]
929|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-4-5 18:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C++, FOR, AI, ce, ST
请问下面这个程序错在哪,为什么?是不能在循环里定义动态数组吗?还是其他什么问题呢?
是不是动态数组也一定要设定长度呢?如果是那么为什么下面的第二个程序又可以正常运行呢?
请知道的大师帮帮忙解答下:究竟是什么问题导致第一个程序不能正常运行呢?
#include<iostream>
using namespace std;
int main()
{
int n,i,t,j;
while(cin>>n)
{
int*a=new int[];
for(i=0;i<n;i++)
cin>>a[i];
for(t=n-1;t>0;t--)
{
for(i=0;i<t;i++)
if(a[i]>a[i+1])
{
j=a[i];
a[i]=a[i+1];
a[i+1]=j;
}
}
cout<<sizeof(a)<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
delete[] a;
}
return 0;
}
为什么上面这个程序有错误,而下面这个程序却正常呢
#include<iostream>
using namespace std;
int main()
{
int n,i,t,j;
int*a=new int[];
while(cin>>n)
{
for(i=0;i<n;i++)
cin>>a[i];
for(t=n-1;t>0;t--)
{
for(i=0;i<t;i++)
if(a[i]>a[i+1])
{
j=a[i];
a[i]=a[i+1];
a[i+1]=j;
}
}
cout<<sizeof(a)<<endl;
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
delete[] a;
return 0;
}

相关帖子

沙发
baidudz| | 2012-4-5 18:31 | 只看该作者
第一个 程序 崩溃的地方是在delete语句那行。
第二个程序 是一直没有 执行到“delete[] a;”这一句

使用特权

评论回复
板凳
ledaa| | 2012-4-6 15:40 | 只看该作者
路过,不明白,等高手吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝