Winsock 2 addrinfo *结果?

时间:2013-12-16 22:17:46

标签: c++ windows winsock msdn winsock2

我正在通过在线教程学习 C ++ ,例如cprogramming.com的教程,并决定创建一个简单的套接字程序作为我的第一个真实项目。我已经尝试过基本功能,并了解 C ++ 的工作原理。我刚刚在MSDN Winsock2演练中碰到了一些困扰我的东西。

this page上,从sddrinfo结构声明了一个名为hints的对象:

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

我对此声明的* result和* ptr = null部分感到困惑。由于没有分号,我假设新行是出于可读性目的,这段代码可以像这样编写。

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

看来我们正在声明指向addrinfo结构的两个指针,并将它们设置为null以及声明提示对象。有人可以解释将这些设置为NULL的目的吗?如果有人熟悉winsock你能解释这些指针的使用方法和原因吗?为什么不直接使用提示对象?

1 个答案:

答案 0 :(得分:4)

该行在一行中声明多个变量。这和

是一回事
struct addrinfo *result = NULL;
struct addrinfo *ptr = NULL;
struct addrinfo hints;

程序员将指针设置为NULL,这样如果你不小心取消引用它们,你就会抛出异常并找到错误。如果你没有初始化它们,它们会指向垃圾,这会导致你的应用程序以狡猾的方式崩溃。