用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;
}
结果正常:
测试第二个结构体的代码:
#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;
}
运行结果报错: