Я думаю, что тот факт, что код while(argc >= 0)
, показывает, что вы знаете, что массивы индексируются нулем. Проблема в том, что вы начинаете с argc вместо argc-1.
или, другими словами, вы, похоже, понимаете, что argv [0] - это имя программы, argc ВКЛЮЧАЕТ это в качестве аргумента, поэтому, когда он говорит argc = 4, это означает, что в дополнение к название программы ...
И, как указал Джерри Коффин, C требует, чтобы argv [argc] был НЕДЕЙСТВИТЕЛЕН, как часовой, в случае, если известно, что аргументы равны 1 - argc-1 недостаточно ...