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

怎么老是说访问非法内存?

红糖水 发布于 2013-03-17 08:11, 535 次点击
各位高手给点提示。。。跪谢了!
这是我的代码,但系统老是说访问非法内存,而在VC上又能正常运行,这让我很纠结。。。
#include<iostream>
using namespace std;
int main()
{
    int *p,i,sum=0,*m,n;//声明变量和指针
    cout<<"Please input the number of the elements in the array:"<<endl;
    cin>>n;//输入一个整数
    p=new int();//开辟n个存储空间
    m=p;
    cout<<"Please input the elementes in the array:"<<endl;
    for(i=0;i<n;i++)//输入数据
    {
        cin>>*p;
        sum=sum+*p;//求和
        p++;
    }
    cout<<"The array you input:"<<endl;
    p=m;
    for(i=0;i<n;i++)//输出数据
    {
        cout<<*p;
        cout<<" ";
        p++;
    }
    cout<<endl;
    cout<<"The sum of the array is:"<<endl;
    cout<<sum<<endl;
    delete []p;//释放内存
    return(0);
}
2 回复
#2
wp2319572013-03-17 08:41
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int *p,i,sum=0,*m,n;//声明变量和指针
    cout<<"Please input the number of the elements in the array:"<<endl;
    cin>>n;//输入一个整数
    p=new int [n];//开辟n个存储空间
    m=p;
    cout<<"Please input the elementes in the array:"<<endl;
    for(i=0;i<n;i++)//输入数据
    {
        cin>>*p;
        sum=sum+*p;//求和
        p++;
    }
    cout<<"The array you input:"<<endl;
    p=m;
    for(i=0;i<n;i++)//输出数据
    {
        cout<<*p;
        cout<<" ";
        p++;
    }
    cout<<endl;
    cout<<"The sum of the array is:"<<endl;
    cout<<sum<<endl;
    p=NULL;
    m=NULL;
    delete p;//释放内存
    delete m;
    return 0;
}

c++ 不是很熟悉  小小的改动了一下  你试试看
#3
红糖水2013-03-17 20:14
回复 2楼 wp231957
太感谢大牛了,程序正确了。。。学到很多
1