C++语言bug [Error] invalid use of incomplete type 'struct LNdoe'

    用Dev C++写的程序,自己定义了两个除了名字其他一样的结构体,用malloc申请空间后用指针进行操作,同样的操作第一个结构体没问题,第二个结构体就报[Error] invalid use of incomplete type 'struct LNdoe'。盯着眼睛看了半天也没看出来这俩结构体有啥差别,尝试排列组合把名字和位置都换了换,一直都是一个行一个不行,求大佬指教。

测试的第一个结构体的代码:

#include<stdlib.h>
#include<stdio.h>
typedef struct LNdoe *PtrToLNode;
typedef struct SNode *PtrToSNode;
struct SNode {
    int Data;
    PtrToSNode Next;
};
struct LNode {
    int Data;
    PtrToLNode Next;
};
int main(){
    PtrToSNode p=(PtrToSNode)malloc(sizeof(struct SNode));
    p->Next=NULL;
    return 0;
}

结果正常:

img

测试第二个结构体的代码:

#include<stdlib.h>
#include<stdio.h>
typedef struct LNdoe *PtrToLNode;
typedef struct SNode *PtrToSNode;
struct SNode {
    int Data;
    PtrToSNode Next;
};
struct LNode {
    int Data;
    PtrToLNode Next;
};
int main(){
    PtrToLNode p=(PtrToLNode)malloc(sizeof(struct LNode));
    p->Next=NULL;
    return 0;
}

运行结果报错:

img

拼写错误
typedef struct LNdoe *PtrToLNode;改为typedef struct LNode *PtrToLNode;

回答:没看出来到底咋修改,没这样写过结构体,要不你这样写吧,容易懂,也不容易出错

#include<stdlib.h>
#include<stdio.h>

typedef struct SNode {
    int Data;
    SNode* Next;
}SNode;

typedef struct LNode {
    int Data;
    LNode* Next;
}LNode;

int main() {
    LNode* p = (LNode*)malloc(sizeof(struct LNode));
    p->Next = NULL;
    return 0;
}

img