关于动态内存分配问题 求大佬解答
问题描述:
struct LNode
{
int date;
struct LNode * next;
}
struct LNode *L;
请问
L = (LNode*)malloc(sizeof(LNode));
L.next = (LNode*) malloc(sizeof(LNode));
请问这两句话有区别吗,第一句话是不是等同于 L是所分配的内存块的名字?在L上操作等同于在所分配的内存块上操作?
答
一个是L节点
一个是L的next
等同于 L是所分配的内存块的名字?在L上操作等同于在所分配的内存块上操作
这么理解没问题,但是一般来说“名字”科学的说法叫做指针变量。
答
这不对吧。首先L是个指针。应该是L->next.
第一个分配的是L,可以认为是第一个节点。第二个分配的是下一个节点的空间