Тест слишком поздний
if(argc==3){
тесты для обязательных argc
, но, к сожалению, после использования argv[1], argv[2]
.Передвиньте тест до и выйдите, если не нужно.Примечание: хорошее использование сообщения об ошибке для stderr
.
if (argc != 3) {
fprintf(stderr,"Usage: %s <arguments>\n", argv[0]);
return -1; // or return EXIT_FAILURE
}
Неправильное преобразование
Код преобразует указатель, а не ссылочный текст.
#include <stdlib.h>
// a = (int)argv[1];
a = atoi(argv[1]);
Надежный код будет использовать strtol()
или, возможно, свернуть свой собственный `strtoi () '