Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 21:27   #11
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

из winsock.h
Код:
struct sockaddr {
        u_short sa_family;              /* address family */
        char    sa_data[14];            /* up to 14 bytes of direct address */
};
Может быть там, откуда Вы это взяли она объявлена иначе.
netrino вне форума Ответить с цитированием
Старый 12.10.2009, 22:58   #12
Shadovv13
Пользователь
 
Регистрация: 02.03.2008
Сообщений: 11
По умолчанию

Извиняюсь если надоел!

В строке 1. перменая pcap_if_t будет иметь тип структуры pcap_if,
тоисть в памяти будет выделена область фиксированого размера.

В строке 2. непонятка нащет (**)??? Да и alldevsp и errbuf до визова функцыи необявлены, ето нормально?

struct pcap_addr {
struct pcap_addr *next;
struct sockaddr *addr;
struct sockaddr *netmask;
struct sockaddr *broadaddr;
struct sockaddr *dstaddr;
};

struct pcap_if {
struct pcap_if *next;
char *name;
char *description;
struct pcap_addr *addresses;
u_int flags;
};

1. typedef struct pcap_if pcap_if_t;
2. int pcap_findalldevs (pcap_if_t** alldevsp, char* errbuf)
Shadovv13 вне форума Ответить с цитированием
Старый 12.10.2009, 23:03   #13
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Первое: pcap_if_t является алиасом(вторым именем) для struct pcap_if. То есть теперь при объявлении переменных этой структуры можно писать не
Код:
struct pcap_if variable;

a

pcap_if_t variable;
Второе:
alldevsp и errbuf объявляются как параметры функции, до этого их объявлять не надо. pcap_if_t** означает, что alldevsp является указателем на указатель на структуру типа pcap_if_t
netrino вне форума Ответить с цитированием
Старый 13.10.2009, 00:01   #14
Shadovv13
Пользователь
 
Регистрация: 02.03.2008
Сообщений: 11
По умолчанию

u_short сколько байт? А то в доке. чото нету, есть short int и unsigned short int
Shadovv13 вне форума Ответить с цитированием
Старый 13.10.2009, 00:20   #15
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

u_short это typedef для unsigned short int. То есть они равны)
netrino вне форума Ответить с цитированием
Старый 13.10.2009, 00:36   #16
Shadovv13
Пользователь
 
Регистрация: 02.03.2008
Сообщений: 11
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Второе:
alldevsp и errbuf объявляются как параметры функции, до этого их объявлять не надо. pcap_if_t** означает, что alldevsp является указателем на указатель на структуру типа pcap_if_t
Тоисть alldevsp указывает на адрес pcap_if_t, а по адресу pcap_if_t ????

Все запутался окончательно
Shadovv13 вне форума Ответить с цитированием
Старый 13.10.2009, 00:41   #17
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Shadovv13 Посмотреть сообщение
Тоисть alldevsp указывает на адрес pcap_if_t, а по адресу pcap_if_t ????

Все запутался окончательно
Указатель - такая же переменная как и все остальные, под неё тоже отводится память и она тоже имеет адрес То есть в Вашем случае в памяти имеется некая структура pcap_if_t, её адрес сохранён в указателе. И вот как раз адрес этого указателя и попадает в вышеописанную функцию ) То есть выходит указатель на указатель на структуру pcap_if_t )
Код:
char buf[80];
pcap_if_t* p = (pcap_if_t*)malloc(sizeof(pcap_if_t)); // В p адрес выделенной памяти
pcap_findalldevs (&p, buf); // Передаём адрес p
Примерно так будет выглядеть вызов этой ф-ции

Последний раз редактировалось netrino; 13.10.2009 в 00:44.
netrino вне форума Ответить с цитированием
Старый 13.10.2009, 01:25   #18
Shadovv13
Пользователь
 
Регистрация: 02.03.2008
Сообщений: 11
Хорошо Да програмистам С++, Нужно медаль вешать

Ну накоцто!! Хоть компил = ОК.

Ща дописать код, и посмотреть че в етих структурних **** делаеца.

netrino Я тебе примного благодарен!!!!!! За терпение и обяснение.
Shadovv13 вне форума Ответить с цитированием
Старый 15.10.2009, 23:03   #19
Shadovv13
Пользователь
 
Регистрация: 02.03.2008
Сообщений: 11
Злость Неработает!!!!!!!!!

Ничерта неработает!!!

Уже решыл дедовскы методом через Ж.

В int pcap_findalldevs (pcap_if_t** alldevsp, char* errbuf)
вместо pcap_if_t** alldevsp всунул STRING, чтоб мосмотреть что возвращает!

Оказалось что LEN(alldevsp) = приблизително 542700 б. но от запуска к запуску размер меняетца.

Сохранил ето чуто в файл .ТХТ
Вот пример первых строк с етого файла.
Изображения
Тип файла: bmp 1111111.bmp (769.1 Кб, 151 просмотров)
Shadovv13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры masha.dongyz Помощь студентам 2 19.12.2011 20:29
С++ структуры KOLYTFR Помощь студентам 2 24.05.2009 19:02
Структуры BaSk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 16.05.2009 15:33
Структуры Centyrion Общие вопросы C/C++ 4 06.05.2008 20:33
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27