У меня есть функция, которая выполняет простое математическое вычисление в зависимости от того, в какой операции мы читаем.
Символ «операция» считывается из командной строки и должен быть строкой из одного символа.
Я получаю ошибку сегмента при использовании функции strcmp.
Не уверен, почему это происходит.Может кто-нибудь помочь?Код ниже:
int syscall(int param1, int param2, char operation, int* result)
{
if (param2 == 0 && (strcmp(operation, "/") == 0))
{
return -1;
}
else if (strcmp(operation, "+") == 0)
{
*result = param1 + param2;
return 0;
}
else if (strcmp(operation, "-") == 0)
{
*result = param1 - param2;
return 0;
}
else if (strcmp(operation, "*") == 0)
{
*result = param1 * param2;
return 0;
}
else if (strcmp(operation, "/") == 0)
{
*result = param1 / param2;
return 0;
}
else
{
return -1;
}
}