私はここで何が欠けていますか?それは私のナッツを運転している!C++:sprintfでconst char *を印刷できないのはなぜですか?
.....
.....
char str[50];
sprintf(str, "%s", Notation());
.....
.....
しかしSTRは変わらない:
は、私がこれをやっているコードの別の部分で今のconstのchar *
const char* Notation() const
{
char s[10];
int x=5;
sprintf(s, "%d", x);
return s;
}
を返す関数を持っています。
代わりに私がこれを行う場合:
.....
.....
char str[50];
str[0]=0;
strcat(str, Notation());
.....
.....
STRが正しく設定されています。
私は予想通りはsprintfが動作しない理由を疑問に思って...
おそらく1つのアイデアは、関数を以下のように変更することです:void Notation(char * buffer)constそして呼び出し側提供のcharバッファで動作します。 – Wartin
なぜdownvote?問題は明確で、努力を示す「働く」サンプルが与えられ、実際の問題のサンプルが与えられます。 – chris