Доброго времени суток! Прошу помочь в сложившемся, имеется задание вывести прямоугольник с параметрами задаваемые вместе с "./a.out", допустим ./a.out 4 6 (4 - длина по вертикали 6 длина по горизонтали), при этом если просто ввести ./a.out без чисел, компилятор не должен выдавать ошибок. но у меня он выдает


код следующий
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* line(unsigned len, char c1, char c2)
{
char* buf = (char*)calloc(len + 1, sizeof(char));
memset(buf, c1, len / sizeof(char));
buf[0] = buf[len - 1] = c2;
return buf;
}
int main(int ac, char **av)
{
int x = atoi(av[1]);
int y = atoi(av[2]);
char* hf = line(x, '-', 'o');
char* ss = line(x, ' ', '|');
for (int idx = 0; idx != y; idx++)
printf("%s\n", (!idx || 1 + idx == y) ? hf : ss);
free(hf);
free(ss);
return 0;
}