我试图通过使用char
给函数内的变量提供一些strcpy
。而且出现以下错误
[Error] declaration of 'char str3 [100]' shadows a parameter
[Error] invalid initialization of non-const reference of type 'std::string& {aka std::basic_string<char>&}' from an rvalue of type 'char*'
[Note] in passing argument 2 of 'void read_string(std::string&, std::string&)'
这是我的代码,如下所示:
#include <iostream>
#include <string.h>
using namespace std;
void read_string(std::string &to, std :: string &str3)
{
to = "test";
std::cout << &to << std::endl;
char str3[100];
strcpy (str3,"copy successful");
std::cout << str3<<std :: endl;
}
int main()
{
std::string s = "This should be changed.";
char ss[100];
read_string(s,ss);
std::cout << &s << std::endl;
std::cout<<ss<<std::endl;
return 0;
}
答案 0 :(得分:4)
您的函数体内的函数参数std::string &str3
与char str3[100];
的名称相同,您需要更改一个变量名称。