2014-04-22 2 views
0

이 간단한 프로그램을 사용하여 포인터를 사용하여 배열의 순서를 뒤집을 수있다. 그러나 JAVA를 사용하는 동일한 유형의 프로그램을 만들었지 만 포인터가 문제가되는 것처럼 느껴집니다.왜 내 역 기능에서 나 빠지게되는지 알아낼 수 없다.

오류 설명 :

내 오류 내 역 기능에서오고있다. 나에게 역순으로 정수를주는 대신, 메모리 주소를 출력하는 것처럼 보인다. 예를 들어, 0x003456, 0xx45268, .......; 내 첫 번째 배열에 배치 한 실제 숫자를 출력하는 대신. 이제 나는 내 포인터가이 믹스를 일으키는 원인이되는지에 대해 긍정적으로 생각합니다. 내 실수가있는 부분을 정확하게 지적 할 수 없습니다. 누군가가 올바른 방향으로 나를 이끌 수 있다면 나는 매우 감사 할 것입니다.

코드 : 언급 한 질문에서 주석으로

#include <iostream> 
#include <iomanip> 

using namespace std; 

void reverseArray(int *[], int); 
void firstArrayValue(int [], int); 

void main() 
{ 
    const int SIZE = 10; 
    int firstArray [SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int *arrayPointer[SIZE]; 

    for (int x = 0; x < SIZE ; x++) 
    { 
    arrayPointer[x] = &firstArray[x]; 
    } 

    cout << "The Values In Your First Array Is the Following : \n \n" ; 
    firstArrayValue(firstArray, SIZE); 
    reverseArray(arrayPointer, SIZE); 
    system("pause"); 
    } 
void reverseArray(int *incoming_Array[], int size) 
{ 
int *temp; 
for (int i = 0; i < size/2; ++i) 
{ 
    temp = incoming_Array [size-i-1]; 
    incoming_Array [size-i-1] = incoming_Array [i]; 
    incoming_Array [i] = temp; 
} 

for (int i = 0; i < size; ++i) 
{ 
    cout << incoming_Array [i] << " "; 
} 

system("pause"); 
} 

void firstArrayValue(int num[], int size) 
{ 
for (int x = 0; x < size; x++) 
{ 
    cout << num [x] << " " ; 
} 
} 
+0

'무효 main'은 INT의 main''해야합니다. – chris

+0

포인터 배열을 인쇄 중입니다. 따라서 주소를 인쇄합니다. 당신은 주소를 역 참조하거나 단순히'incoming_Array'를 정수의 배열로 선언 할 필요가 있습니다. – 0x499602D2

답변

0
void reverseArray(int incoming_Array[], int size) //instead of int *incoming_Array[] 
{ 
    int *temp; 
    for (int i = 0; i < size/2; ++i) 
    { 
     temp = incoming_Array [size-i-1]; 
     incoming_Array [size-i-1] = incoming_Array [i]; 
     incoming_Array [i] = temp; 
    } 
    for (int i = 0; i < size; ++i) 
    { 
     cout << incoming_Array [i] << " "; 
    } 
} 
0

, 당신은 실제 값을 얻을 수 있도록 배열의 포인터를 복종해야합니다. print 행을 다음과 같이 변경하여 명시 적으로 준수하십시오.

cout << *(incoming_Array [i]) << " "; 
관련 문제