注册 登录
编程论坛 C++教室

各位高手,帮忙找一下问题呀?

如心1125 发布于 2011-05-11 22:41, 384 次点击
#include<iostream>
using namespace std;
void main()
{
    int a[10]={0,2,5,6,8,9,40,56,78,99};
    int i,c;
    for(i=0;i<=9;i++)
    cout<<a[i]<<" ";
    cout<<endl;
//插入数字
    cout<<"插入数字:";
    cin>>c;
    for(i=0;i<10;i++)
        if(c<a[i])break;
    for(int j=10;j>i;j--)
        a[j]=a[j-1];
    a[i]=c;
    for(i=0;i<11;i++)
        cout<<a[i]<<" ";
    cout<<endl;
}
运行之后结果什么都是对的,但会出现  0x0042622c指令引用的0x00000047内存,该内存不能为written,怎么解决?
2 回复
#2
Pirelo2011-05-11 22:49
  
#include<iostream>
using namespace std;
void main()
{
    int a[10]={0,2,5,6,8,9,40,56,78,99};//=>int a[11]={0,2,5,6,8,9,40,56,78,99};
    int i,c;
    for(i=0;i<=9;i++)
    cout<<a[i]<<" ";
    cout<<endl;
//插入数字
    cout<<"插入数字:";
    cin>>c;
    for(i=0;i<10;i++)
        if(c<a[i])break;
    for(int j=10;j>i;j--)
        a[j]=a[j-1];
    a[i]=c;
    for(i=0;i<11;i++)
        cout<<a[i]<<" ";
    cout<<endl;
}
插入后数组长度为11,原来定义的长度(10)不够了
#3
如心11252011-05-12 23:27
多谢,多谢!
1