Здравствуйте, Zulin_78, Вы писали:
K>>А еще точнее, т.к. заранее неизвестно кол-во адресов, использовать realloc(3) при добавлении каждого нового адреса. Ну или сразу выделить с запасом (n = argc). Z_>Да это конечно выход. При данном подходе мы добиваемся того что вся память выделяется последовательно и операции с указателя работают валидно. Z_>Но почему не работает мой код? Я объявляю **_addr. Выделение памяти под _addr является первый вызов функции malloc т.е. для указателя _addr [со смещением i] = (указатель void) вернуть выделенную память (размером). Поправьте меня если я не прав.
Бррр. Ты: выделяешь память под массив указателей на in_addr размером, равным размеру struct in_addr. Обычно в этой структуре только одно поле размером в 4 байта.
Надо: выделить память, достаточную для хранения N указателей на in_addr.