不允许指针指向不完整的类类型。大神帮我看看把

qetuoadgjkl 2017-03-12 12:01:48
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<time.h>

using namespace std;

#define ERROR 0;
#define OK 1;

typedef int ElemType;
typedef int Status;
typedef struct LNode
{
ElemType data;
struct Node* next;
}Node;
typedef struct Node* LinkList;

void CreateListHead(LinkList* L,int n)
{
LinkList p;
int i;
srand(time(0));
*L=(LinkList)malloc(sizeof(LNode));
(*L)->next=1; // 就是这个(*L)报错
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
p->data=rand()%100+1; //这里也报错
p->next=(*L)->next; //这里
(*L)->next=p; //这里
}
}
...全文
715 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ck2333 2017-03-13
  • 打赏
  • 举报
回复
楼上说的很清楚了,楼主的基础有很大的问题啊
lilillos 2017-03-13
  • 打赏
  • 举报
回复

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


using namespace std;

#define ERROR 0;
#define OK    1;

typedef int ElemType;
typedef int Status;
typedef struct LNode
{
	ElemType data;
	struct LNode* next;
}Node;
typedef Node* LinkList;
//或者写成 typedef struct LNode* LinkList

//注意
//但是这里写成 typedef struct Node* LinkList;
//应该是向代码中增加了新的名字Node,
//在c或c++中称为不完全类型,语法允许声明指向不完全类型的指针,引用(c++)
//也可以声明但不定义以不完全类型为参数,返回值的函数
//但是是不可用做任何实际使用的


void CreateListHead(LinkList *L,int n)
{
	LinkList p;
	int i;
	srand(time(0));
	*L=(LinkList)malloc(sizeof(LNode));
	(*L)->data = rand()%100+1;
	(*L)->next=nullptr;    //next 是地址不能赋为1
	for(i=0;i<n;i++)
	{
		p=(LinkList)malloc(sizeof(LNode));
		p->data=rand()%100+1;  
		p->next=(*L)->next;         
		(*L)->next=p;                   
	}
}

int main()
{
	LinkList t = nullptr;
	CreateListHead(&t,5);
	while ((t)->next!=nullptr)
	{
		std::cout<<(t)->data<<endl;
		((t))=(t)->next;
	}
	system("pause");
	return 0;
}

lilillos 2017-03-13
  • 打赏
  • 举报
回复

qetuoadgjkl 2017-03-12
  • 打赏
  • 举报
回复
最后一句话报错:不能将LinkList类型的值分配到Node*类型的实体
幻夢之葉 2017-03-12
  • 打赏
  • 举报
回复
typedef struct Node* LinkList; 改为 typedef Node* LinkList;

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧