По какой-то причине моя программа C отказывается преобразовывать элементы argv в ints, и я не могу понять, почему.
int main(int argc, char *argv[])
{
fprintf(stdout, "%s\n", argv[1]);
//Make conversions to int
int bufferquesize = (int)argv[1] - '0';
fprintf(stdout, "%d\n", bufferquesize);
}
И это результат при запуске. /test 50:
50
-1076276207
Я попытался удалить (int), выбрасывая как *, так и между (int) и argv [1] - первый дал мне 5, но не 50, но последний дал мне результат, аналогичный тому, выше. Удаление операции "0" не очень помогает. Я также попытался сделать char first = argv [1] и сначала использовать для преобразования, и это довольно странно дало мне 17 независимо от ввода.
Я очень смущен. Что происходит?