【发布时间】:2017-05-28 23:09:46
【问题描述】:
嘿,对不起,我是 C 的新手,但是我从教程点找到了那里的代码,我只是想知道他们使用 \0in memset 函数是否有特定原因?还是只是随机的??
#include <arpa/inet.h>
(...)
int retval;
struct in_addr addrptr
memset(&addrptr, '\0', sizeof(addrptr));
retval = inet_aton("68.178.157.132", &addrptr);
【问题讨论】:
-
通常使用空字符将内存的值设置为空
\0,这样如果您在设置之前访问内存,您不会从以前的内存使用中得到意外的值。 -
所以 \0 表示 null 对吗?
-
没错。
-
嘿,那里!如果您将此站点与教程点支持论坛混淆:我们不是。
-
@D.R.:
\0什么都不是。你的意思是'\0',它是一个int,与0相同。补充一点:这仅适用于整数数组。对于所有其他(浮点数、指针等),如果您追求可移植代码,它几乎没有用处。