我目前正在实现一个链表,它将在每个节点中存储一个字符串数组。目前我正在尝试将这些字符串数组返回给 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/