В приведенном ниже коде я пытаюсь получить доступ к элементу ссылочного массива структур и сдвига это в индексе массива.
Ошибка invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]
возникает при доступе к структуре, поскольку ссылка на индекс, по-видимому, считывается как указание cstring. Как я могу получить доступ к элементу struct в этом контексте? Что не так?Модифицирующий элемент структуры, который имеет ошибку типа 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.
Что касается ошибки, * где * вы ее получаете, на какой строке? И как выглядит структура? –
Любая причина, по которой вы просто не могли использовать 'std :: vector' и дополнительно 'std :: string' вместо массивов char? –
PaulMcKenzie
Ошибка возникает в 'strcpy (songList [i] .min, songList [i + 1] .min); strcpy (songList [i] .sec, songList [i + 1] .sec); ' – 0x1000001