2017-03-29 1 views
0

배열을 정렬하는 함수의 코드를 작성 했으므로 주 파일에서 액세스 할 수있게되었습니다.배열을 전달하여 참조를 반환하고 배열을 반환하려고합니다.

내가 직면하고있는 문제는 어떻게 배열을 전달하고 배열을 정렬 하는지를 이해할 수 없다는 것입니다.

기능 초기화. 거품 정렬에 의해 배열을 정렬한다

void sort (int *ary[], int len); 

주요 기능

int main() 
{ 
    int max [4]= {2,8,5,9}; 
    sort(&max, 4); 
    for (int l =0; l<4;l++) 
    { 
     cout<< max[l]<< " "<< endl; 
    } 
    system("pause"); 
    return 0; 
} 

기능.

void sort (int *ary[], int len) 
{ 
    int temp=0; 
    for (int i = 0; i<len; i ++) 
    { 
     for (int j= 0 ; j<len ;j++) 
     { 
      if (ary[j]> ary[j+1]) 
      { 
       temp = ary[j]; 
       ary[j] = ary[j+1]; 
       ary[j+1]= temp; 
      } 
     } 
    } 
} 

나는 다음과 같은 오류 메시지가 얻을 :

비주얼 스튜디오 2012 \ 프로젝트 \ problem2 \ problem2 \ pract.cpp (11) : 오류 C2664 : '일종의': 매개 변수 1 변환 할 수 없습니다 'int [4]'에서 'int * []'

어떻게이 오류를 해결할 수 있습니까?

답변

0

int *ary[]은 포인터 배열을 의미합니다. int ary[]int* ary 같은 수단이 함수 파라미터 이래로

void sort(int ary[], int len); 

때문에 위는 동등하다 : 당신은 배열을 취할 int ary[] 쓸 수 마지막으로, (같이 호출

void sort(int* ary, int len); 

array-to-pointer decay 때문에) :

sort(max, 4); 
관련 문제