gpt4 book ai didi

C++ - 初始化 SOCKADDR_IN

转载 作者:可可西里 更新时间:2023-11-01 17:52:12 30 4
gpt4 key购买 nike

我正在解决一些静态分析缺陷,而导致我出现问题的就是这个缺陷。

SOCKADDR_IN m_stLclAddr;

SOCKADDR_IN is a member of the WinSock API

缺陷是我没有初始化以下内容:

  • m_stLclAddr.sin_port
  • m_stLclAddr.sin_zero
  • m_stLclAddr.sin_addr
  • m_stLclAddr.sin_family

我对 WinSock API 不是很熟悉,但我做了一些研究,我只想知道以下代码行是否会使用默认值初始化 m_stLclAddr?:

m_stLclAddr = { 0 };

最佳答案

m_stLclAddr = {0} 将在第一次将所有内容设置为零(不一定是默认值或您实际想要执行的操作)。 memset(&m_stLclAddr, 0, sizeof(SOCKADDR_IN)); 会将 m_stLclAddr 中的所有内容设置为零,不仅用于初始化,而且用于连续调用。

我想你会想做这样的事情:

local_sin.sin_family = AF_INET;
local_sin.sin_port = htons (PORTNUM);
local_sin.sin_addr.s_addr = htonl (INADDR_ANY);

如下所示:http://msdn.microsoft.com/en-us/library/aa454002.aspx

关于C++ - 初始化 SOCKADDR_IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918008/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com