我正在编写一个使用RRD库的C++程序,该库需要一个'const char*'数组作为其函数的参数。我认为我只需要声明这个数组,然后初始化数组中每个元素,但是更改其中一个元素会更改所有元素。显然我还有些不理解的地方。
以下是一个类似于我编写的代码(即它展现了相同的问题)的示例:
string intToString(long i)
{
stringstream ss;
string s;
ss << i;
s = ss.str();
return s;
}
int main(){
const char* av[5];
int i = 0;
int j = 0;
for(i=0;i<5;i++){
j= 0;
av[i] = intToString(i).c_str();
for(j=0;j<5;j++){ cout << j << " : " << av[j] << endl;}
}
}
非常感谢您的帮助。
intToString
函数中,只需要写:returnss.str();
。没有必要先复制一份,再返回那个副本。 - GManNickG