我正在製作一個C++程序,它應該從標準輸入中讀入一個整數N.然後它應該從文件「data.txt」中讀取一個大小爲N的數組。然後它應該將它傳遞給一個函數,數組並返回一個指向新數組的指針。然後它應該打印返回的指針數組的內容。但每次運行該程序都會崩潰。有任何想法嗎?爲什麼程序崩潰?
#include <iostream>
#include <fstream>
using namespace std;
int * reverseArray(int * arr, const int size)
{
//int arr1[size];
int *arr2 = new int[size];
for(int iii = 0; iii < size; iii++)
{
(*(arr2+iii)) = (*(arr + size - 1 - iii));
}
return arr2;
}
int main()
{
int N;
cin >> N;
if(N >= 0 && N <= 50)
{
ifstream inputFile;
inputFile.open("data.txt");
int *arr = new int[N];
int iii = 0;
while(inputFile >> (*(arr+iii)) && iii < N)
{ iii++;}
arr = reverseArray(arr, N);
for(int jjj = 0; jjj < N; jjj++)
{
cout << (*(arr+jjj)) << endl;
}
delete [] arr;
inputFile.close();
}
return 0;
}
你能發佈你得到的確切的錯誤嗎? – 2012-02-27 15:50:33
那麼,它在哪裏崩潰?如果這是C++,爲什麼不使用'std :: vector'和'std :: reverse'?另外,你正在泄漏你最初分配給'arr'的內存(也是切換到'std :: vector'的一個很好的理由)。 – Chad 2012-02-27 15:51:26
does'data.txt'是否存在於所需的位置? – Naveen 2012-02-27 15:53:45