Have a code as shown below. I have problem passing the arguments.
stringstream data;
char *addr=NULL;
strcpy(addr,retstring().c_str());
retstring()
is a function that returns a string.
//more code
printfunc(num,addr,data.str().c_str());
I get the error
invalid conversion from ‘const char*’ to ‘char*’.
initializing argument 3 of ‘void Printfunc(int, char*, char*)’on argument 3 of the function
on the above line. The function is called as shown below
void Printfunc(int a, char *loc, char *stream)
please let me know if I need to change any initialization.
Well, data.str().c_str() yields a char const* but your function Printfunc() wants to have char*s. Based on the name, it doesn’t change the arguments but merely prints them and/or uses them to name a file, in which case you should probably fix your declaration to be
void Printfunc(int a, char const* loc, char const* stream)
The alternative might be to turn the char const* into a char* but fixing the declaration is preferable:
Printfunc(num, addr, const_cast(data.str().c_str()));