Я немного новичок в C и хочу понять кое-что о доступе к аргументам функции с помощью указателей и разыменования.
Вот мой код, весь смысл программы в том, чтобы использовать strtol
для анализа заданного параметра только с двумя цифрами, разделенными пробелами.
int sum(const char *input){
char *input = input_line; // dereference the address passed into the function to access the string
int i; // store sum in here
char *rest; // used as second argument in strtol so that first int can be added to i
i = strtol(input, &rest, 10); // set first int in string to i
i += strtol(rest, &rest, 10); // add first and second int
return i;
}
Я не понимаю, как получить доступ к заданному строковому параметру, потому что строки имеют *
по имени переменной, и я не слишком уверен, как это обойти.
В любом случае, спасибо.
strtol()
для довольно полного обсуждения того, как правильно использоватьstrtol()
. Однако ваши нынешние проблемы более приземленны. Ваш код не скомпилируется, потому что вы не можете переопределить параметр (input
) на верхнем уровне тела функции. Вероятно, вы имели в виду назвать параметрinput_line
, а неinput
. - person Jonathan Leffler   schedule 12.01.2017