i wrote some code to take an array and run it through a function to reverse the elements of the array and then return a pointer to the new array. For some reason im not getting the results i want. It has to do with my reverseArray function. Specifically in my for loop because when i hard code my new array i get the numbers i want. I would like to avoid hard coding them. any advise??

using namespace std;

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

int main()
	const int SIZE = 5;
	int* fixedArray;
	int test[SIZE] = {10, 20, 30, 40, 50};
	int* arrayPtr;
	fixedArray = reverseArray(SIZE, test);

	cout << "Here is the original array: " << endl;
	cout << "Here is the new array: " << endl;
	showArray(fixedArray, SIZE);

	int* reverseArray(int size,int score[])
	int* revArray;
	int count;
	int index;

	revArray = new int[size];
	for(count = 5;count = 0;count--)
		index = 0;

		revArray[index] = score[count];


	return revArray;

	void showArray(int score[], int size)
		for(int index = 0; index < size; index++)
			cout << score[index] << " " << endl;


Sorry to say, it is the usual problems.

Basically, if you get a problem like this put some std::cout statements in the inner loops that are doing stuff. .e.g in reverseArray.

You would find: for(count=5;count = 0; count--) is wrong since I think you intended to write for(count=5;count != 0; count--) .

Note: That error would have been a warning from your compiler if you turn on the warnings.

You have another error, that is a bit more subtle, that is you have an array of size items, BUT you set count = 5. That means you have a bug waiting to happen. Next, you then use score[count] . Note that score is an array from score[0] to score[4]. Try something like score[count-1] Finally, please remember to delete the memory you allocate in reverseArray.