У меня есть следующий код, который берет несортированный список песен и исполнителей, сортирует и отображает их.memcpy создает ошибку сегментации
int main()
{
SongList totalList; // has a public 2d array 'unsortedSongs' variable
char songs[100][80] =
{
{"David Bowie 'Ziggy Stardust'",},
{"Smokey Robinson 'You've Really Got A Hold On Me'",},
{"Carole King 'You've Got A Friend'",},
// many more songs here totaling to 100
{"Joni Mitchel 'A Case Of You'",},
{"Prince 'Kiss'"}
};
memcpy(&totalList.unsortedSongs, &songs, sizeof(songs)); // this causes a segmentation fault
totalList.displaySortedList();
return 0;
}
Я взял код тетсру почти сразу с примера here, поэтому я запутался, почему это не работает. Может ли кто-нибудь помочь мне исправить это?
редактировать:
это инициализация
Список песен Технический райдерclass SongList
{
public:
char unsortedSongs[100][80];
public:
void displaySortedList();
void sortList();
string rearrange(char[]);
string getSongsForArtist(int*);
};
Можете ли вы показать нам, как объявлен и реализован «SongList'? Я предполагаю, что 'unsortedSongs' неправильно инициализируется. –
Вы уверены, что вам нужны '& песни', а не только' песни'? (возможно, то же самое для 'unsortedSongs', но мы не знаем, что ... – John3136
Я действительно не думаю, что в строке с memcpy существует ошибка сегментации: [http://ideone.com/lJKboC] (http://ideone.com/lJKboC). – newbie