gpt4 book ai didi

c - 将未初始化的结构传递给函数,为什么它不为空?

转载 作者:行者123 更新时间:2023-11-30 20:40:16 24 4
gpt4 key购买 nike

我对这个问题已经挠头好一阵子了。我正在创建没有任何值的节点(甚至尝试初始化它和指针并将其设置为 NULL),但是当我进入插入函数 head_ 时,其计算结果不会为 NULL。我可以检查 head_->id = NULL 但我认为我不必这样做。关于我做错了什么有什么想法吗?我正在尝试构建并遍历一个链接列表,但肯定没有一个好的开始!输出为:

头_ =不为空!?

#include <stdio.h>
#include <stdlib.h>
struct node{
int id;
struct node *next;
};
int main(void){
struct node head;
int entered_id;
insert(&head, 1);
}
void insert(struct node* head_, int new_id){
printf("\nhead_ = %s", head_);
if(!head_){
printf("\nnull");
}
else
printf("\nnot null!?");
fflush(stdout);
}

最佳答案

#include <stdio.h>
#include <stdlib.h>
struct node{
int id;
struct node *next;
};
int main(void){
struct node * head = NULL; // create a pointer instead of declaring structure variable
int entered_id;
insert(head, 1);
}
void insert(struct node* head_, int new_id){
// printf("\nhead_ = %s", head_); can you print structure as string?
if(!head_){
printf("\nnull");
}
else
printf("\nnot null!?");
fflush(stdout);
}

如果使用struct节点头,它将创建一个占用空间的对象,因此不为NULL。您想要的是一个指向对象的指针,该对象最初指向任何内容,因此为空。

关于c - 将未初始化的结构传递给函数,为什么它不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464098/

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