初学linux驱动,遇到一个空指针的问题,弄了一晚上没解决,原来是结构体初始化的时候用了kmalloc来分配空间,导致结构体成员未被正确初始化,尤其是结构体成员中存在指针的时候,就会发生“野指针”的情况。
看内核代码kzalloc函数的实现:
所以kzalloc是kmalloc和memset的结合,也就是将申请成功后的空间成员变量初始化为0。
初学linux驱动,遇到一个空指针的问题,弄了一晚上没解决,原来是结构体初始化的时候用了kmalloc来分配空间,导致结构体成员未被正确初始化,尤其是结构体成员中存在指针的时候,就会发生“野指针”的情况。
看内核代码kzalloc函数的实现:
所以kzalloc是kmalloc和memset的结合,也就是将申请成功后的空间成员变量初始化为0。