我已經成功地反轉了一維數組,但是當我查找內容時,它會打印出內容,然後打印其他數字。在C++中反轉數組
4
3
2
1
-858993460
-858993460
4
-858993460
-1021245226
12384668
3697177
1
14484784
14501672
-1021245434
0
Press any key to continue . . .
我不知道爲什麼它打印出這些額外的數字。以下是我的源代碼:
#include <iostream>
#include <array>
using namespace std;
void flipRow(int array[], int row) {
int temp;
for (int i = 0; i < sizeof(array)/2; i++) {
//cout << "Hi" << endl;
temp = array[i];
array[i] = array[row-1];
array[row-1] = temp;
row--;
}
}
int main() {
const int ROW = 4;
int array[ROW] = { 1, 2, 3, 4 };
flipRow(array, ROW);
for (int i = 0; i < sizeof(array); i++) {
cout << array[i] << endl;
}
system("pause");
return 0;
}
這些地址?有人可以告訴他們爲什麼打印出來嗎?謝謝。
'sizeof(array)'不會做你認爲它做的事。 – drescherjm 2014-10-30 22:30:58
看看這個答案http://stackoverflow.com/questions/37538/how-do-i-determine-the-size-of-my-array-in-c – Hagai 2014-10-30 22:54:39
如果它是在所有的選項,我會消化這個源代碼,並使用'main()'中的[**'std :: reverse' **](http://en.cppreference.com/w/cpp/algorithm/reverse)。 – WhozCraig 2014-10-30 23:32:02