一段小程序可通过编译器,就是不能运行,谁能解答?
#include<iostream.h> #include<stdlib.h>
int a[20]={2,0,6,23,41,0,5,6,0,99,33,22,0,12,67,0,9,3,6,23};
int b[20]={1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1};
int *p,i,j=0,*m,*nn;
int **y;
int k;
int main()
{
y = (int **)calloc(20,sizeof(int *));
nn=(int *)calloc(20,sizeof(int));
p=&a[0];
*m=b[0];
for(i=0;i<20;i++)
{
if(*(p+i)!=0)
{
*(y+j)=p+i;
cout<<**(y+j)<<" ";
j++;
}
}
cout<<"\n";
k=0;
for(i=0;i<20;i++)
{
if(k<j)
{
if((p+i)==*(y+k))
{
if(**(y+k)>=**(y+k-1))
{
*(nn+i)=**(y+k);
}
else *(nn+i)=*(m+i);
cout<<*(nn+i)<<" ";
k++;
}
}
}
return 0;
}
不知何原因红色处就是不能赋值,为什么?
[ 本帖最后由 yxb0001 于 2009-9-25 09:22 编辑 ]