关于malloc分配问题

q = (LinkList)malloc(sizeof(Node));
q = (LinkList *)malloc(sizeof(Node));
在定义一个链表结构体后
分配动态内存,这两个有什么区别吗
求各位大神解释谢谢

有区别。
因为你想要的是一个指向堆,这就是刚刚分配的内存空间的指针,而malloc的返回值类型是void *,所以要将他强制转换成指针类型LinkList *。
如果q仅仅只是一个数值,那么就用第一种,不过这种不常见,也不推荐,因为堆上的数据用完后需要free释放掉,所以这种方法不好。
一般情况下用的都是指针,这样就可以分配数组,释放内存了。