私が期待どおりに動作this codeを持っている:const char *をchar *に格納する方法は?
#define MAX_PARAM_NAME_LEN 32
const char* GetName()
{
return "Test text";
}
int main()
{
char name[MAX_PARAM_NAME_LEN];
strcpy(name, GetName());
cout << "result: " << name << endl;
}
(私はフレームワーク内の一部の機能のみchar *
入力として使用することを使用しているので)私はstrcpy
を使用せずにchar *
に結果を保存したい場合(コードの実用性と読みやすさ、そして学習するために)、どうすればいいですか?
const char* name;
name = GetName();
を私はまだconst
を持っている:const
に維持する、これはうまく動作します。
だけchar*
を使用しようとすると:
char* name;
name = GetName();
私はinvalid conversion from 'const char*' to 'char*'
を取得します。このような変換のための最良の習慣は何ですか?
あなたは何をしたいですか?文字列を変更したくない場合、最初のイディオムがあなたにサービスを提供し、余分なメモリを使用しません。文字列を変更したい場合は、他の場所でその内容をコピーする必要があります(strcpyなどが必要です)。 – SJuan76