2 lftuui LFTUUI 于 2014.08.27 17:47 提问

DEV C++编译 访问违例(我百度过了,还是不懂)

#include
#include
int queue1,*queue2,n;
int cmp(const void*a,const void*b)
{
return(
(int*)a-*(int*)b);
}
int gg(int p1,int *p2,int j)
{
int i,f;
p2[0]=p1[j];
j=-1;

for(i=0;i {
if(p1[i+1]>p2[j]) p2[j]=p1[i]+p2[j];
else
{
j++;
p2[j]=p1[i]+p1[i+1];
i=i+2;
}
}
if(j!=0)

{
f=gg(p2,p1,j); \here look!
return(f);
}
else return(p2[0]);
}
int main()
{
int i,j,k;
scanf("d",&n);
queue1=(int
)calloc(n,sizeof(int));
queue2=(int*)calloc(n,sizeof(int));

for(i=0;i<n;i++)
scanf("%d",&queue1[i]);
qsort(queue1,n,sizeof(int),cmp);
k=gg(queue1,queue2,n);
printf("%d",k);

while(1);
return 0;
}

报错于 25 行 f=gg(p2,p1,j);
百度得知:一般要么是访问了空指针指向的对象,要么是访问了已经被销毁的对象,要么是数组越界;
但我不知道我的程序是哪种

今天刚注册,发的第一个贴,大神们教教我!!://b

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!