关于动态内存分配问题 求大佬解答

关于动态内存分配问题 求大佬解答

问题描述:

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,可以认为是第一个节点。第二个分配的是下一个节点的空间