weixin_45631165
2019-11-27 16:53
采纳率: 81.8%
浏览 196

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

struct LNode
{
int date;
struct LNode * next;
}

struct LNode *L;

请问
L = (LNode*)malloc(sizeof(LNode));

L.next = (LNode*) malloc(sizeof(LNode));

请问这两句话有区别吗,第一句话是不是等同于 L是所分配的内存块的名字?在L上操作等同于在所分配的内存块上操作?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2019-11-27 16:59
    已采纳

    一个是L节点
    一个是L的next

    等同于 L是所分配的内存块的名字?在L上操作等同于在所分配的内存块上操作
    这么理解没问题,但是一般来说“名字”科学的说法叫做指针变量。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • sleep1111111111111 2019-11-28 09:46

    这不对吧。首先L是个指针。应该是L->next.
    第一个分配的是L,可以认为是第一个节点。第二个分配的是下一个节点的空间

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题