动态数组小问题?
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int capacity;
int *ptrArr = new int [capacity];
cout<<"Capacity = ";cin>>capacity;
for (int i = 0; i < capacity; i++)
{
cin>>ptrArr[i];
}
int su();
cout<<"The sum is : "<<su()<<endl;
cout<<"Messages are as follows:"<<endl;
for (i = 0; i < capacity; i++)
{
cout<<setw(6)<<ptrArr[i];
}
cout<<endl;
return 0;
}
int su()
{
extern int capacity, *ptrArr;
int s = 0;
for (int i = 0; i < capacity; i++)
{
s = s + ptrArr[i];
}
return s;
}
这个用VC++6.0怎么只可以编译通过, 执行却通过不了呢?
[解决办法]
int capacity;
int *ptrArr = new int [capacity];
申请多大的内存空间?capacity有没有初始化?
[解决办法]
int *ptrArr = new int [capacity];
cout<<"Capacity = ";cin>>capacity;
两行顺序换一下,capacity没初始化就使用了
另外 int su() 函数里的 extern 声明你能编译通过?有点诡异了吧