我是一個初學者,所以我很抱歉,如果這是真的愚蠢的問題/問題。 我的任務是從輸入文件中打印出一個動態數組。我試着用Google搜索,發現了一些類似的問題......但答案都像「使用矢量」等,但我們還沒有學到這些。也有人說,必須使用一個函數。這是我想出了:動態數組從輸入文件
#include <iostream>
#include <fstream> //file input
using namespace std;
int *out(int *arr, int siz){
arr = new int[siz];
for (int i = 0; i < siz; i++) {
cout << arr [i] << " ";
}
return arr; //this should print out the array later???
}
int main(){
int siz;
int *arr;
ifstream inf ("input.txt");
inf >> siz; //
for (int i = 0; i < siz; i++) {
inf >> arr[i];
}
inf.close();
cout << "This array contains following elements: ";
*arr = *out(arr, siz) ;
delete[] arr;
return 0;}
所以,它並沒有給與開發 - C++任何錯誤,但是當我嘗試運行它,它崩潰。我試着調試它,然後它給了我「分割錯誤」或類似的東西。當然,我用google搜索了一下,這些指針肯定有問題,對吧?你能幫我嗎?謝謝。
某物利用更近期的和C你的主要需求使用ARR來填充元素之前分配ARR ++ 11符合標準的編譯器(例如[GCC](http://gcc.gnu.org/)),並編譯所有警告和調試信息('g ++ -Wall -g')。然後使用[std :: vector](http://en.cppreference.com/w/cpp/container/vector)。學習如何使用調試器**('gdb') – 2014-10-20 10:57:13
除此之外,你的部分代碼沒有任何意義(具有返回值的東西......) – deviantfan 2014-10-20 10:58:19
你正在讀取你的文件到一個unalloacated內存'改編」。首先分配你的記憶,然後閱讀 – 999k 2014-10-20 10:58:21