我正在编程 tcp 套接字,我正在使用 struct sockaddr_in server_addr;
来设置端口等。在一些教程中我读到我应该将 server_addr
的内存清零在使用它之前。我是不是该?是否有可能我会得到一些可能导致问题的数据的内存? linux 和 windows 有什么不同吗?
谢谢
最佳答案
如果您不初始化保留内存区域,它将包含之前存储在那里的任何值。因此,将其“归零”始终是一个好主意,这意味着用一些值覆盖曾经存在的内容,在本例中为空字节 \0
。
如果您将 malloc
替换为 calloc
,这将自动为您完成。
无论您是否这样做,都不会影响您从套接字读取的值。
如果您在 Windows 或 Linux/Unix 上执行此操作并不重要:这是所有环境的常见行为。
关于c++ - 我应该将分配的内存归零吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682978/