下面是初始化cdev中的一小段代码,但是发现一个有关memset参数的问题:
void cdev_init(struct cdev *cdev,struct file_operations *fops)
{
memset(cdev,0,sizeof *cdev);//对字符设备进行清零操作
/*
这是memset函数的源代码
void memset(void* s, int c, size_t n)
{
int i;
char *ss = (char*)s;
for (i=0;i<n;i++) ss[i] = c;
}
*/
在memset函数中,发现参数s是指向空的指针,但是在上面标注红颜色的使用中,cdev参数并不是指向空的成员,
这样的使用为什么能够正常使用,而不出现问题呢?