Я сейчас пытаюсь разобрать два аргумента из командной строки: строку и int. Я пытаюсь сделать этот анализ без использования встроенных парсеров, таких как getopt или argp. Я понял, как правильно проанализировать строку, но когда я анализирую int, он меняет значение? Я не уверен, почему это происходит. Вот мой код:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
char* filename;
int prefix;
int x;
for(x = 0; x < argc; x++)
{
if(x == 1)
{
filename = argv[x];
}
if(x == 2)
{
prefix = *argv[x];
}
}
printf("%s\n", filename);
printf("%d\n", prefix);
}
Когда я передаю аргументы: имя файла 70
Он выведет: имя файла 55
Почему он меняет мое значение типа intэто? Я проверил это с различными значениями, и я заметил, что это даже не согласованное значение смещения. Как я могу исправить это, чтобы правильно проанализировать мой int? Спасибо.