我如何在 C 中使用节点?

how do I use nodes in C?

(这是关于找出我的程序有什么问题)我对编程很陌生,我目前正在学习如何在 C 中使用结构和节点,我制作了这个应该读取和注册数据的简单程序一部电影,但我不知道我做错了什么,因为我的编译器不断显示: •用不完整的 return 调用 'fillMovieData' 类型 'struct node' (在第 17 行)
•函数定义(第22行)中的结果类型'struct node'不完整 •returning 'struct cinema' 来自结果类型不兼容的结构 'struct node' (第 32 行)

你知道我该如何解决这个错误吗?我会很感激我能得到的所有反馈! 代码是:

#include<stdio.h>
#include<stdlib.h>
struct cinema{
    char *name;
    char *genre;
    short year;
    short numDirectors;
    char *directors[10];
};
void printMovieData(struct cinema);
struct node fillMovieData(char *, char *, short , short , char *[10]);

int main(){
    char *directors[10];
    directors[0] = "Lana Wachowski";
    directors[1] = "Andy Wachowski";
    struct cinema matrix = fillMovieData("The matrix", "Fiction", 1999, 2, directors); // this is line 17
    printMovieData(matrix);
    return 0;
}

struct node fillMovieData(char *name, char *genre, short year,short numDirectors, char *directors[10]){ //this is line 22
    struct cinema movie;
    movie.name = name;
    movie.genre = genre;
    movie.year = year;
    movie.numDirectors = numDirectors;
    int cont = 0;
    for ( ; cont < movie.numDirectors ; cont++){
        movie.directors[cont] = directors[cont];
    }
    return movie; //this is line 32
}

void printMovieData(struct cinema movie){
    printf("MOVIE: %s\n", movie.name);
    printf("GENRE: %s\n", movie.genre);
    printf("YEAR: %d\n", movie.year);
    printf("DIRECTOR(S):\n");
    int cont = 0;
    for ( ; cont < movie.numDirectors ; cont++){
        printf("%s\n", movie.directors[cont]);
    }
}

第 17 行:
您定义了电影数据类型 struct cinema matrix 但您使用的函数

fillMovieData("The matrix", "Fiction", 1999, 2, directors);

returns 节点数据类型
第 22 行和第 32 行还试图说明您对 returning fillMovieData 函数

的值使用了不同的数据类型
struct node fillMovieData(char *, char *, short , short , char *[10]);

returns 类型 struct node 但在定义中你 return moviestruct cinema 数据类型的类型。

您的 fillMovieData 函数正在返回 movie 的值,其类型为 struct cinema。此外,您没有类型 struct node 的定义,就像您对 struct cinema.

所做的那样

我很清楚你是想将 fillMovieData 声明为

struct <strong><em>cinema</em></strong> fillMovieData( ... ) { ... }