Является ли эта программа нуль-безопасной?
номер
Сбой ниже, когда argc < 3
(например, 2,1,0), когда он вызывает atoi()
с NULL
или неизвестно. @ Ian Abbott
int a=atoi(argv[1]),b=atoi(argv[2]),n,status;
Вместо этого измените предыдущий тест только с 1 на следующий. Обратите внимание, что argc == 0
возможно на некоторых платформах и при определенных вызовах функций.
// if(argc==1)
if(argc < 3)
Как автономная функция, check_negative()
не проверяет, передан ли аргумент null указатель перед разыменованием. Добавить чеки
int check_negative(int *x, int *y){
if (x == NULL || y == NULL) return 0; /// or handle in some way
В сторону:
isprime(Any_int_less_than_2)
ошибочно возвращается 1
.
for(i=2; i <= n/2; ++i)
очень медленно для больших n
. Предложить ускорение for(i=2; i <= n/i; ++i)
. Пример