K 순서 목록을 O(n*logk)
. 목록 배열을 만들려고하는데 min_heapify와 같은 특정 함수를 호출하는 방법을 모르겠습니다.
void min_heapify(List *list[],int size);
void main() {
List list[10]; // initialize all 10 list randomly in ascending order.
min_heapify(&list,10); // This line won't compile.
}
도와주세요.
함수에서 예상하는 포인터 배열을 전달하는 대신 포인터를 배열에 전달합니다.
함수에는 별표와 괄호 쌍이 모두 있기 때문에 목록 포인터 배열이 필요합니다.
List *list[] // <<== This means "an array of pointers to elements of type List"
이 함수에 포인터 배열을 전달하려면에서 포인터 배열을 선언 main
하고 호출을 수행하십시오.
void main() {
List *list[10];
// intitialize all 10 list pointers randomly in ascending order.
for (int i = 0 ; i != 10 ; i++) {
list[i] = malloc(...); // Initialize list at position i
}
min_heapify(list,10); // Remove the ampersand
}
목록 배열을 전달하려는 경우 별표 또는 대괄호 만 유지하십시오.
void min_heapify(List list[],int size);
또는 동등한
void min_heapify(List *list,int size);
main
제대로 컴파일 하려면의 호출에서 앰퍼샌드를 제거하십시오 .
void main() {
List list[10]; // intitialize all 10 lists randomly in ascending order.
min_heapify(list,10); // Remove the ampersand
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다