qq_43412960 2019-12-22 23:02 采纳率: 78.6%
浏览 212
已结题

这是我写关于数据结构链表初始化功能的一个代码


#include<iostream>
#include<conio.h>
#include<string.h>
#define OK 1
#define MAXSIZE 100
using namespace std;
typedef  int Status;
#define OK 1
typedef  struct  
{
char name[5];
float price;    
}Book;

typedef  struct  LNode 
{
Book Elem;
LNode *next;

}LNode,*List;

Status InitList(List *L)
{
  L=new List();
  if(!L)
      exit(-1);
  else
     (*L).next=NULL;
  return OK;
}

int main()
{
LNode L;
L.Elem.price=1;
List * LL;



getch();


return 0;
}


为什么会报错
--------------------Configuration: 线性表 - Win32 Debug--------------------
Compiling...
线性表.cpp
E:\数据结构\线性表.cpp(29) : error C2228: left of '.next' must have class/struct/union type
Error executing cl.exe.

线性表.exe - 1 error(s), 0 warning(s)

大概是
(*L).next=NULL;
出了问题。我很纳闷,*L整体是个值结构体类型,给地址赋值,这么写没有问题啊

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-23 09:44
    关注
    (*L)->next=NULL;
    或者
    (**L).next=NULL;
    
    因为 
    typedef  struct  LNode 
    {
    Book Elem;
    LNode *next;
    
    }LNode,*List;
    List已经是指针了,所以L是指针的指针,而*L是指针,所以用->
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器