gpt4 book ai didi

c - C 中的列表实现

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:45 25 4
gpt4 key购买 nike

我是 C 语言的初学者,我尝试用 C 语言实现列表,但是当我编译代码时,我收到错误“请求成员‘单词’不在结构或 union 中”。我的代码如下所示:

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

typedef struct data {
char* word;
struct data* next;
} DataT;

typedef struct node {
int wordLength;
struct node* prev, *next;
DataT* words;
} NodeT;

typedef struct list {
int length;
NodeT* first , *last;
} ListT;


void insertWord(NodeT* Node, char* word) {
if(!Node) || (!word) return;

if(Node.words.word == NULL)
Node.words.word = word;

DataT* current = Node.words.next;

while(current)
{
current = current.next;
}
(*current.next) = word;
}

最佳答案

函数实现有几个错误

例如这个 if 语句在语法上是错误的

if(!Node) || (!word) return;

我想你的意思是

if( !Node || !word ) return;

这个声明

if(Node.words.word == NULL)
Node.words.word = word;

也是错误的。应该是

if(Node->words->word == NULL)
Node->words->word = word;

再次无效代码

DataT* current = Node.words.next;

应该有

DataT* current = Node->words->next;

这个说法是错误的

    current = current.next;

应该是这样的

    current = current->next;

这个说法是错误的

(*current.next) = word;

而且循环后电流会等于NULL。因此,即使您正确编写 current->next 而不是 current.next,您也可能无法访问数据成员 next。

关于c - C 中的列表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483890/

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