이 간단한 프로그램을 사용하여 포인터를 사용하여 배열의 순서를 뒤집을 수있다. 그러나 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] << " " ;
}
}
'무효 main'은 INT의 main''해야합니다. – chris
포인터 배열을 인쇄 중입니다. 따라서 주소를 인쇄합니다. 당신은 주소를 역 참조하거나 단순히'incoming_Array'를 정수의 배열로 선언 할 필요가 있습니다. – 0x499602D2