c - 从 C 中的链表返回字符串数组

标签 c pointers multidimensional-array linked-list

我目前正在实现一个链表,它将在每个节点中存储一个字符串数组。目前我正在尝试将这些字符串数组返回给 main。该结构的代码是

#define MAX_LINE 80

typedef struct node 
{
    char things[MAX_LINE/2][MAX_LINE];
    struct node *link;
}Node;

有问题的方法是

char **getThings(Node *head, int position){
    if(position == 1){
        return head->things;
    }
    int i = 1;
    while(head->link != NULL){
        head = head->link;
        i++;
        if(i == position){
            return head->things;
        }
    }

{

但是,错误是“警告:从不兼容的指针类型返回。我查看了 C 中的返回数组和动态分配,但无法理解它与链表访问的关系。应该在东西被取出并放入一个动态分配的数组中,如果是的话如何?

最佳答案

您应该从 getThings 返回正确的类型

尝试

#define MAX_LINE 80

typedef char (*thing_t)[MAX_LINE];

thing_t getThings(Node *head, int position){
    if(position == 1){
        return head->things;
    }
    int i = 1;
    while(head->link != NULL){
        head = head->link;
        i++;
        if(i == position){
            return head->things;
        }
    }

关于c - 从 C 中的链表返回字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854201/

相关文章:

python - 如何在 Python 中创建由多个对象组成的 3D 数组?

javascript - 如何在javascript中使用二维数组实现原型(prototype)函数?

c - X11:如何使应用程序位于顶部

c - 为什么在更改 main 的签名时会出现段错误?

二进制到十进制转换的c程序

用 C 中的函数更改数组?

c - 指针大小 : Dependent factors

c++ - 如何将3D尺寸不固定的3D数组展平为1D数组?

c# - Arquivo 制作意大利面的入口文件

c - 变量默认值