Winsock 2 addrinfo * результат?

0

Я изучаю C++ через онлайн-учебники, например, на cprogramming.com, и решил создать простую программу сокетов в качестве моего первого реального проекта. Я уже экспериментировал с основными функциями и понял суть работы C++. Я просто столкнулся с чем-то на прошивке MSDN Winsock2, которая меня смутила.

На этой странице объект с именем hints объявляется из структуры sddrinfo:

struct addrinfo *result = NULL,
                *ptr = NULL,
                hints;

Я смущен о * result и * ptr = null частях этого объявления. Поскольку нет точек с запятой, я предполагаю, что новые строки предназначены для удобства чтения, и этот код можно записать следующим образом.

struct addrinfo *result = NULL, *ptr = NULL, hints;

Похоже, что мы объявляем два указателя, указывающих на структуру addrinfo и устанавливаем их в null вместе с объявлением объекта-подсказок. Может ли кто-нибудь объяснить цель установки их в NULL? И если кто-нибудь знаком с winsock, вы можете объяснить, как и почему используются эти указатели? Почему бы просто не использовать объект подсказок?

  • 3
    getaddrinfo .
  • 1
    Вы смелы, занимаясь программированием сокетов для своего первого проекта на C ++ :-)
Показать ещё 1 комментарий
Теги:
winsock
msdn
winsock2

1 ответ

4
Лучший ответ

Эта строка объявляет несколько переменных в одной строке. Это то же самое, что и это

struct addrinfo *result = NULL;
struct addrinfo *ptr = NULL;
struct addrinfo hints;

Программисты устанавливают указатели на NULL, так что, если вы случайно их разыщите, вы выбросите исключение и найдете свою ошибку. Если вы не инициализируете их, они укажут на нежелательные файлы, которые могут привести к сбою вашего приложения в коварных манерах.

  • 0
    Или в C ++ это было бы addrinfo *result = NULL; , и т.д.
  • 0
    struct addrinfo * result = NULL; struct addrinfo * ptr = NULL; это означало бы то же самое? struct addrinfo hints;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню