gpt4 book ai didi

C 错误取消引用指向不完整类型的指针

转载 作者:行者123 更新时间:2023-12-04 11:00:48 25 4
gpt4 key购买 nike

我按照《C数据结构基础》一书中给出的函数编写了这段代码,我编写了以下代码来实现一个简单的链表,但我似乎没有弄错,因为图书代码应该是正确的:

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

typedef struct node *listpointer;

typedef struct {

int data;
listpointer link;
} node;

void print(listpointer first)
{
while (first) {
printf("%d\n",first->data);
first=first->link;
}
}

void addAtFront(listpointer *first,int n)
{
listpointer t=*first,temp;
temp=malloc(sizeof(node));
int i=1;
while (i <= n) {
t=t->link;
i++;
}
if(*first) {
temp->link=t->link;
temp->data=90;
t->link=temp;
}
else
{
*first=temp;
temp->link=NULL;
}
}


listpointer createList( )
{
listpointer first,second;
if(first=malloc(sizeof(node))) {
first->data=67;
if(second=malloc(sizeof(node))) {
second->data=65;
first->link=second;
second->link=NULL;
}
}
return first;
}





main( )
{
listpointer first=createList( );
addAtFront(&first,2);
print(first);
}

最佳答案

你有这个类型定义:

typedef struct node *listpointer;

但您从未定义过struct node。你有一个匿名 struct typedefnode 的定义,但是:

typedef struct {
int data;
listpointer link;
} node;

可能你的意思是:

typedef struct node {
int data;
listpointer link;
} node;

关于C 错误取消引用指向不完整类型的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com