gpt4 book ai didi

c - 对字符串链表进行排序时出现运行时错误

转载 作者:行者123 更新时间:2023-12-02 09:24:26 25 4
gpt4 key购买 nike

void sort(struct node **s2) {
struct node *x, *y;
x = *s2;
char *str;
while (x != NULL) {
y = x->n;
while (y != NULL) {
if (strcmp(x->name, y->name) > 0) {
strcpy(str, x->name);
strcpy(x->name, y->name);
strcpy(y->name, str);
}
y = y->n;
}
x = x->n;
}
}

这显示了运行时错误。我不知道怎么了我相信排序是正确的是选择排序我的节点结构是:

struct node {
char *name;
struct node *n;
};

它显示运行时错误。

最佳答案

字符 *str; ... strcpy(str,x->name);name 指向的数据复制到 某个地方(这是未定义的行为)作为 str 是一个未初始化的指针。

只是交换指针。

       if (strcmp(x->name,y->name) > 0) {
char *temp = x->name;
x->name = y->name;
y->name = temp;
}

关于c - 对字符串链表进行排序时出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39000450/

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