1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】'const char*' から 'char*' への無効な変換。

2022-01-10 18:02:32

質問

コードは次のとおりです。

stringstream data;
char *addr=NULL;
strcpy(addr,retstring().c_str());

retstring() は文字列を返す関数です。

//more code
printfunc(num,addr,data.str().c_str());

エラーが表示される

invalid conversion from 'const char*' to 'char*'.

initializing argument 3 of 'void Printfunc(int, char*, char*)'on argument 3 of the function

を上の行に追加してください。この関数は、以下のように呼び出されます。

void Printfunc(int a, char *loc, char *stream)

解決方法は?

さて。 data.str().c_str() が得られます。 char const* しかし、あなたの関数 Printfunc() が必要です。 char* s. この名前からすると、引数を変更するのではなく、単に表示したり、ファイル名に使ったりしているだけで、その場合は、おそらく宣言を次のように修正する必要があります。

void Printfunc(int a, char const* loc, char const* stream)

別の方法として char const*char* が、宣言を修正することが望ましい。

Printfunc(num, addr, const_cast<char*>(data.str().c_str()));