
首先这段代码没问题,困惑在在于最后一行这个赋值
我的目前的理解(肯定是哪里理解的有问题)就是两个指针A和B赋值的意义就是让A也去指向B所指向的那块内存空间,但是还得按照A指针的那个类型来解析那块内存空间。
回到代码,最后一行赋值,等号右边,指向的是一块8字节的内存空间(假设指针占4个字节),对于C结构体,它的第一个成员也是8个字节,这就已经把那8个字节的内存空间解析完了,那C结构体还有剩下的3个成员,拿什么解析?因为这代码后面还有c->max和c->cnt。
c是指针,l->head也是指针,最后一行只是简单的指针赋值,拷贝的是指针的值(地址)
C结构体空间按照上面的假设字节大小,共占24字节,它第一个成员占去8字节,还剩16字节,够剩下的3个成员分配了。c虽然被赋值了,但指针类型并没有被改变。