将数组地址赋给另一个地址
为什么H = BuildMaxHeap( N ) ;这句是错的,数组的地址不可以赋给另一个数组名么
程序代码:#include <stdio.h>
#define MaxSize 100000
int* BuildMaxHeap( int N )
{
int i ;
int t , size ;
int item ;int H[MaxSize]={-10001} ;//数组初始化
//初始化时H[0]=-10001 ;
//建立一个N个元素的最小堆,
//scanf("%d",&H[1] );//先输入堆中第一个元素
size = 0 ;
for(i=0 ; i<N ; i++)
{
scanf("%d" , &item ) ;
size=size+1 ;
for(t=size ; H[t/2]>item ; t=t/2 )
H[t]=H[t/2] ;
H[t] = item ;
}
return H ;
}
int main( )
{
int i ;
int H[MaxSize]={-10001} ;//数组初始化
int N ;
int *p ;
scanf("%d",&N) ;
H = BuildMaxHeap( N ) ;
p = BuildMaxHeap( N ) ;
for(i=1 ; i<=N ; i++)
printf("%d ", *(p+i) ) ;
for(i=1 ; i<=N ; i++)
printf("%d ", H[i] ) ;
printf("\n");
}


