gpt4 book ai didi

c - 单链表 c - 可以在此函数中未初始化地使用 (-Wall -Werror)

转载 作者:行者123 更新时间:2023-11-30 21:08:57 24 4
gpt4 key购买 nike

我收到了 "may be used uninitialized in this function" for: current->next = temp;我查了几个小时但找不到任何解决方案。

这是代码:

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

struct node{
int data;
struct node *next;
}*head = NULL;

void add_list( int value){
struct node *temp, *current;
temp = (struct node *) malloc(sizeof(struct node));
temp->data = value;
temp->next = NULL;
if(head == NULL){
head = temp;
current = temp;
}
else{
current->next = temp;
current = temp;
}
}

int main(void){
for(int i = 0; i < 10; i++){
add_list(i);
}
return EXIT_SUCCESS;
}

最佳答案

假设head != NULL,在将第一项添加到列表后,该结果将为真。那么,你的函数是:

void add_list( int value){
struct node *temp, *current;
temp = (struct node *) malloc(sizeof(struct node));
temp->data = value;
temp->next = NULL;

current->next = temp; // current is uninitialized
current = temp;
}

FWIW,您可以将功能简化为:

void add_list( int value){
struct node *temp = malloc(sizeof(struct node));
temp->data = value;
temp->next = head;
head = temp;
}

关于c - 单链表 c - 可以在此函数中未初始化地使用 (-Wall -Werror),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36340034/

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