C++ 修改int类型的结构成员时出错:从‘;的转换无效;int’;至‘;常量字符*’;[-fpermissive]

C++ 修改int类型的结构成员时出错:从‘;的转换无效;int’;至‘;常量字符*’;[-fpermissive],c++,arrays,struct,int,c-strings,C++,Arrays,Struct,Int,C Strings,在下面的代码中,我试图访问结构的引用数组的一个成员,并将其在数组索引中移位。 访问结构时发生从'int'到'const char*'[-fppermissive]的无效转换错误,因为对索引的引用似乎被读取为cstring的指示。 如何在此上下文中访问结构成员?怎么了 void removeSong (Song songList[], int& size){ int indexRem; int i; cout << "Input index to rem

在下面的代码中,我试图访问结构的引用数组的一个成员,并将其在数组索引中移位。
访问结构时发生
从'int'到'const char*'[-fppermissive]的无效转换错误,因为对索引的引用似乎被读取为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--;
}
void removeSong(歌曲列表[],int&size){
int indexRem;
int i;
cout指数;
//检查是否需要正确的索引(0和1小于计数)时出错
对于(i=indexRem;i

编辑:此问题与c字符串绘制了不正确的关系。问题在于strcpy函数的使用不当

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

至于错误,你从哪里得到的,在哪一行?结构是什么样子的?有什么原因不能用
std::vector
std::string
代替字符数组吗?错误发生在
strcpy(songList[i].min,songList[i+1].min);strcpy(歌曲列表[i].sec,歌曲列表[i+1].sec) @ PaulMcKeZi]这是一个教程,字符串数据类型不被允许。@ 0x100001—1)得到另一个教程,实际上是教C++而不是<代码> c>代码>。2) 在该循环的最后一次迭代中,
i
的值是多少?
[i+1]
是否会超出数组的范围?3) 如果第2)项为真,则向量会立即向您显示错误。这就是答案。谢谢