Стандарт C гарантирует, что argv[argc]
является указателем NULL:
C Стандарт, §5.1.2.2.1.2:
Если они объявлены, параметры главной функции должны подчиняться следующим ограничениям:
...
- argv [argc] должен быть нулевым указателем.
Технически все, что вам (и функции getopt
) действительно нужно, это argv
- что-то вроде этого обработает все аргументы:
int i;
for(i = 0; argv[i]; i++)
{
puts(argv[i]);
}
Однако ничто не остановит вас (или автор getopt
) вместо использования argc
как al oop guard. Это в равной степени справедливо:
int i;
for(i = 0; i < argc; i++)
{
puts(argv[i]);
}
Итак, если функция говорит, что ей необходимо передать argc
, тогда передайте ей argc
, потому что она, вероятно, использует ее для формирования этого типа l * 1032. *.