将数组地址赋给另一个地址
为什么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"); }