gpt4 book ai didi

c - 使用链接列表没有任何错误但得到奇怪的输出

转载 作者:行者123 更新时间:2023-11-30 14:51:13 24 4
gpt4 key购买 nike

最近我学习了链表,并从 YouTube 教程中编写了一个简单的程序,该程序只是在链表中添加了一些赛车及其名称和速度。然而,一切工作正常,只是控制台的输出对我来说似乎很奇怪。

控制台:

Car: 1 Name: mercedes� Speed: 200

Car: 2 Name: redBull Speed: 250

Car: 3 Name: ferrari Speed: 300

Car: 4 Name: mcLaren Speed: 10

Total Cars: 4

如你所见,我对奇怪的感到好奇。

代码:

#include "stdio.h"
#include "string.h"

typedef struct S_racingCar
{
char name[8];
int speed;
struct S_racingCar *next;
} racingCar;

void printList(racingCar *start)
{
racingCar *currentCar = start;
int count = 0;

while(currentCar != NULL)
{
count++;
printf("Car: %d Name: %s Speed: %d\n", count, currentCar->name, currentCar->speed);
currentCar = currentCar->next;
}
printf("Total Cars: %d\n", count);

}

int main()
{
racingCar mercedes = { "mercedes", 200, NULL};
racingCar redBull = { "redBull", 250, NULL};
racingCar ferrari = { "ferrari", 300, NULL};
racingCar mcLaren = { "mcLaren", 10, NULL};

mercedes.next = &redBull;
redBull.next = &ferrari;
ferrari.next = &mcLaren;

printList(&mercedes);


return 0;
}

最佳答案

name结构成员的长度是8"mercedes"的长度也是8。没有剩余空间可容纳空字符 \0。尝试增加name的大小。
在 C 语言中,字符串是一个以 null 结尾的字符数组。缓冲区应足够长以容纳终止空字符 \0

关于c - 使用链接列表没有任何错误但得到奇怪的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478941/

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