Есть несколько проблем с вашим кодом:
Строка
char *str[256] = {user};
Вы объявляете array
из 256 указателей на char
, ни одна из них не инициализируется вдоль вашего код, поэтому они ничего не указывают, более того, вы пытаетесь присвоить переменную int
указателю char
.
Строка
sprintf(str, "%d", user);
str
недопустима аргумент, вы можете использовать str[0]
, но, опять же, str[0]
указывает на никуда.
Строка
if(NULL == pStr || *pStr == "\0")
^^^^
Вы сравниваете один символ со строкой, допустимое сравнение будет:
if(NULL == pStr || *pStr == '\0')
^^^^
Другие проблемы:
- Отсутствует
break
в case '+'
. char decision
никогда не используется.