gpt4 book ai didi

C 程序 : Create Linked List Using argv, argc,段错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:14 24 4
gpt4 key购买 nike

我有一个程序使用命令行提示符 argv 和 argc 接收字符串。我在运行代码时不断遇到段错误,经过大量研究后,我无法确定是什么原因造成的。也许我如何执行代码是问题所在?我正在使用 gcc -o code code.c 然后 ./code 一二三 其中一二三是添加到链表的字符串。任何帮助确定我的错误可能在哪里的帮助都会很棒。

这是我的代码:

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

typedef struct list_node_s{
char the_char;
struct list_node_s *next_node;
}list_node;

void insert_node(list_node *the_head, char the_char);
void print_list(list_node *the_head);

int main(int argc, char *argv[]){
char next_char;
list_node *the_head = NULL;
insert_node(the_head, next_char);
the_head->next_node = malloc(sizeof(list_node));
if(the_head == NULL){
return 1;
}

the_head->the_char = 1;
the_head->next_node == NULL;
int the_count, the_count2;
for(the_count = 0; the_count < sizeof(argv); the_count++){
for(the_count2 = 0; argv[the_count][the_count2] != '\0'; the_count2++){
next_char = argv[the_count][the_count2];
insert_node(the_head, next_char);
}
}

print_list(the_head);
return (0);
}

void insert_node(list_node *the_head, char the_char){
list_node * current_node = the_head;
while (current_node->next_node != NULL) {
current_node = current_node->next_node;
}

current_node->next_node = malloc(sizeof(list_node));
current_node->next_node->the_char = the_char;
current_node->next_node->next_node = NULL;
}

void print_list(list_node *the_head){
if(the_head == NULL){
printf("\n");
}else{
printf("%c", the_head->the_char);
print_list(the_head->next_node);
}

}

最佳答案

改变这个:

list_node *the_head = NULL;
insert_node(the_head, next_char);
the_head->next_node = malloc(sizeof(list_node));

到:

list_node the_head = { '\0', NULL };

the_head初始化为一个空节点。

关于C 程序 : Create Linked List Using argv, argc,段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23124410/

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