anonymous
написал 5 ноября 2005 года в 09:27 (1805 просмотров)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Есть такой фрагмент кода, компиляция которого вызывает варнинг:
incompatible type for argument 1 of `inet_ntoa'
Код:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
…
int main(void)
{
struct iphdr *ip;
…
printf(«%-15s », inet_ntoa(ip->saddr));
…
return 0;
}
Фрагмент с 'printf' дает варнинг, в чем проблема и как ее решить?
Заранее благодарю!
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
в том что ip->saddr не char* ?
man inet_ntoa говорит, что аргумент функции типа struct in_addr in
ну и?
компилятор говорит, что это не char*. В доке написано что это не char*. Так что тебя удивляет?
угу, понял. Как привести это выражение к правильному типу?
есть функция перевода бинарного адреса в строковое представление. Сам поищешь или у тебя паническая боязнь гугла?
этой функцией я и пользуюсь, см. первое сообщение.
пять минут чтения манов… вот результат
или проще:
здесь в вызове inet_ntoa '&' лишний
а здесь не хватает указателя: