C编程memset arpa.inet

C编程memset arpa.inet,c,memory,ip,memset,C,Memory,Ip,Memset,嘿,对不起,我是C语言的新手,但是下面的代码我是从教程中找到的,我只是想知道他们为什么在memset函数中使用\0?还是只是随机的 #include <arpa/inet.h> (...) int retval; struct in_addr addrptr memset(&addrptr, '\0', sizeof(addrptr)); retval = inet_aton("68.178.157.132", &addrptr); #

嘿,对不起,我是C语言的新手,但是下面的代码我是从教程中找到的,我只是想知道他们为什么在memset函数中使用
\0
?还是只是随机的

#include <arpa/inet.h>

(...)

   int retval;
   struct in_addr addrptr

   memset(&addrptr, '\0', sizeof(addrptr));
   retval = inet_aton("68.178.157.132", &addrptr);
#包括
(...)
内部检索;
地址中的结构
memset(&addrptr,'\0',sizeof(addrptr));
retval=inet_aton(“68.178.157.132”)和addrptr;

空字符
\0
将相关内存设置为空值。这是很有用的,因为内存在释放时并不总是“擦除”,所以它仍然可以从以前使用该内存块的任何东西中获得一个值。通过初始化为null,可以保证不会得到意外值

'\0'
是NUL(即NUL not NULL)字符(值=0),它是设置内存的合理默认值


请注意,术语NULL通常是为指针保留的。

通常使用NULL字符将内存的值设置为NULL
\0
,这样,如果在设置之前访问内存,就不会从以前使用的内存中获得意外值。所以\0表示NULL对吗?没错。嘿,这里!如果您将此网站与教程点支持论坛混淆:我们不是。@D.R.:
\0
什么都不是。您的意思是
'\0'
,它是一个
int
,与
0
相同。添加:这仅适用于整数数组。对于所有其他的(浮点、指针等),如果您在寻找可移植代码,它几乎没有用处。是否有一个函数可以将'\0'null放入整个内存?我可以访问整个memoryZeroing所有位的函数不能保证空指针或'0.='float。因此,它充其量只是一种糟糕的样式,实际上是有缺陷的。是否有一个函数可以将'\0'null设置为整个内存?一个我可以访问的函数memory@user7387002“整个记忆”是什么意思
memset
设置一个指定大小的块-如果你需要一些不同的东西,那么听起来好像你“做错了”。