Здравствуйте, Zulin_78, Вы писали:
Z_>_addr = (struct in_addr **)malloc(sizeof(struct in_addr));
Неправильно, надо так:
_addr = malloc(sizeof(struct in_addr *) * n);
А еще точнее, т.к. заранее неизвестно кол-во адресов, использовать realloc(3) при добавлении каждого нового адреса. Ну или сразу выделить с запасом (n = argc).