沉稳的紫外线 2022-10-12 10:11 采纳率: 62.5%
浏览 31
已结题

链表显示[Error] ld returned 1 exit status

问题遇到的现象和发生背景

报错 [Error] ld returned 1 exit status,检查了应该没有语法错误

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
 
//链表节点定义 
typedef struct s_node
{
    int data;
    struct s_node* pNext;
}Node;
 
Node* create_list_head();
Node* create_new_node(int node_data);
int add_node_head(Node* head, Node* new_node);
void display_list(Node* head);
void free_list(Node* head);
Node* revert_list(Node* head);

int main(int argc,char *argv[])
{
    //创建链表
    Node* head =create_list_head();
    if(NULL == head)
    {
        printf("create_list_head failed\n");
        return -1;
    }
    //填充数据(添加节点)
    int i;
    for(i=1;i<8;i++)
        add_node_head(head,create_new_node(i));
    //打印原来数据
    printf("before");
    display_list(head);
    //反转列表
    head =revert_list(head);
    printf("after");
    display_list(head);

    //释放列表空间
    free_list(head);
    return 0;
}

//创建新列表
Node* create_list_head()
{
    Node* head = (Node*)malloc(sizeof(Node));
    if(NULL != head)
    {
        head->data= -1;
        head->pNext= NULL;
    }
    return head;
}

//创建新节点
Node* create_new_node(int node_data)
{
    Node* new_node = (Node*)malloc(sizeof(Node));
    if(NULL != new_node)
    {
        new_node->data= node_data;
        new_node->pNext= NULL;
    }
    return new_node;
}

//头插法
int add_node_head(Node* head,Node* new_node)
{
    if (NULL ==head||NULL ==new_node)
    
        return -1;
    new_node->pNext = head->pNext;
    head->pNext = new_node;
    return 0;
}

//打印链表数据
void display_list(Node* head)
{
    if(NULL == head)
        return;
    Node* tmp = head;
    printf("list data");
    while(NULL !=(tmp=tmp->pNext));
    {
        printf("%d ", tmp->data);
    }
    printf("\n");
}

//释放链表
void free_list(Node* head)
{
    if(NULL==head)
        return;
    Node* p = head;
    while(p == p->pNext)
    {
        head-> pNext = p->pNext;
        //printf("free:%d\n,p->data");
        free(p);
        p = head;
    }
    free(head);
}

//头插法反转列表
Node* rever_list(Node* head)
{
    if(NULL == head)
        return NULL ;
    
    Node* p = head->pNext;
    head->pNext= NULL;
    Node* tmp = NULL;
    while(p)
    {
        tmp = p->pNext;
        add_node_head(head,p);
        p=tmp;
    }
    return head;
}

运行结果及报错内容
[Error] ld returned 1 exit status
我想要达到的结果

运行好多程序都显示这个,没有提示错误但是运行不出来,想知道怎样解决

  • 写回答

3条回答 默认 最新

  • 伍六七0804 2022-10-12 10:19
    关注

    Node* revert_list(Node* head);
    函数声明了没有实现

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月12日
  • 已采纳回答 10月12日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀