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)项为真,则向量会立即向您显示错误。这就是答案。谢谢