2016-05-04 110 views
-1

我有一個電影類,其中有構造函數需要7個參數像這樣;指針陣列的用法

Movie:: Movie(string ttle,string sts ,double prc,int yr,string gnr,Date rls,int id) 

我想使用動態內存的電影數組,但它給了錯誤,我無法找到它

int main() { 


    int counter=0; // size of array 
    Movie *moviearray; 
    moviearray= new Movie[counter];  

ifstream filein("DVD_list.txt"); 


    for (string line; getline(filein, line);) 
    { 

     counter++; 

     vector<string> v; 


     split(line, '\t', v); // v is an vector and puts string words that has splitted based on tab 

moviearray[counter] =(v[0],v[1] ,stod(v[2]),stoi(v[3]),v[4],Date(v[5]),stoi(v[6])); // ERROR 

如何創建數組中的電影對象?

+2

您正試圖使大小爲0的數組,因爲'計數器= 0' – CoryKramer

+0

我想數組大小和行在txt文件中是相等的 – pflove

回答

4

此:

int counter=0; // size of array 
moviearray= new Movie[counter];  

沒有道理。您正在分配一個零對象數組。稍後你使用它。這是非法的。

相反,嘗試:

std::vector<Movie> movies; 

然後在您的循環:

movies.push_back(Movie(v[0],v[1] ,stod(v[2]),stoi(v[3]),v[4],v[5],stoi(v[6])));