C++: Почему я не могу напечатать const char* с помощью sprintf?

Что я здесь упускаю? Это сводит меня с ума!

У меня есть функция, которая возвращает const char*

const char* Notation() const
{
    char s[10];
    int x=5;
    sprintf(s, "%d", x);
    return s;
}

Теперь в другой части кода я делаю следующее:

.....
.....
char str[50];       
sprintf(str, "%s", Notation());
.....
.....

но strостается неизменным.

Если вместо этого я сделаю это:

.....
.....
char str[50];
str[0]=0;
strcat(str, Notation());
.....
.....

strустановлен правильно.

Мне интересно, почему sprintfне работает должным образом...

5
задан casperOne 7 September 2012 в 19:57
поделиться