首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

动态数组小疑点

2012-04-09 
动态数组小问题?#includeiostream#includeiomanipusing namespace stdint main(){int capacityint *

动态数组小问题?
#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 声明你能编译通过?有点诡异了吧
 

热点排行