修改 int 类型的结构的成员错误:从 'int' 到 'const char*' [-fallowive] 的

Modifying member of struct that is of int type error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]

本文关键字:int const char -fallowive 类型 成员 结构 错误 修改      更新时间:2023-10-16

在下面的代码中,我试图访问结构引用数组的成员并将其移入数组索引。
访问结构时会发生invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]错误,因为对索引的引用似乎被读取为 cstring 的指示。如何在此上下文中访问结构成员?怎么了?

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 函数使用不当。

至少没有看到Song结构定义,我只能假设它的成员中至少有一个是 int 型。strcpy函数对 C 字符串(类型 const char* 的变量)是必需的,因此如果您尝试将其用于int,则会收到错误。