2016-07-17 68 views
-4

在下面的代碼中,我試圖訪問參考數組的結構和移位它在數組索引中。
訪問結構時發生invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]錯誤,因爲對索引的引用似乎被讀爲cstring的指示。 如何在此上下文中訪問結構成員?哪裏不對?修改int類型錯誤的結構成員:從'int'到'const char *'的無效轉換[-fpermissive]

void removeSong (Song songList[], int& size){ 
    int indexRem; 
    int i; 
    cout << "Input index to remove" << endl; 
    cin >> indexRem; 

//Error checking for correct index(0 and 1 less than count) needed 

    for(i = indexRem; i < size; i++){ 
     songList[i] = songList[i+1]; 
    } 

    strcpy(songList[i].title, songList[i+1].title); 
    strcpy(songList[i].artist, songList[i+1].artist); 
    strcpy(songList[i].album, songList[i+1].album); 
    strcpy(songList[i].min, songList[i+1].min); 
    strcpy(songList[i].sec, songList[i+1].sec); 

    size--; 
} 

編輯:此問題與C字符串繪製不正確的關係。這個問題是不恰當的使用strcpy函數。

+0

至於錯誤,*你在哪裏得到它,在哪一行?結構是什麼樣的? –

+0

爲什麼你根本無法使用'std :: vector '和另外'std :: string'而不是char數組? – PaulMcKenzie

+0

錯誤發生在'strcpy(songList [i] .min,songList [i + 1] .min); strcpy(songList [i] .sec,songList [i + 1] .sec);' – 0x1000001

回答

1

沒有至少看到Song結構定義,我只能假設它至少有一個成員是int類型。 strcpy功能是只有 C字符串(const char*類型的變量)所必需的,所以如果您嘗試將其用於int,則會出現錯誤。

+0

這就是答案。謝謝。 – 0x1000001

相關問題