在c中重新编码memset



我是C语言的初学者。我试着重新编码记忆集。我的朋友帮我写代码。

void *
ft_memset(void *b, int c, size_t n)
{
unsigned char *str;
str = (unsigned char *) b;
while (n--)
*str++ = (unsigned char) c;
return (b);
}

我对这段代码有几个问题。

  1. 为什么str = (unsigned char*)b不能是str = unsigned char*b?

  2. 当我们声明str = (unsigned char*)b。Str是否接收到* B的内存地址?

提前谢谢,

为什么str =(unsigned char*)b不能是str = unsigned char*b?

因为(unsigned char*)是强制类型转换。第二个语法无效。

当声明str = (unsigned char*)b。Str是否正在接收* B的内存地址相同?

它不是一个仅用于声明的赋值。bvoid指针,我们需要用unsignd char值填充内存。因此,将同样的引用赋值给指针unsigned char

最新更新