gpt4 book ai didi

不知道为什么崩溃

转载 作者:行者123 更新时间:2023-12-03 15:39:14 24 4
gpt4 key购买 nike

int procurarMatriculaLista(tipoEspera listaDeEspera[], int ClistaDeEspera, char matricula[])
{
int i, pos= -1;
for(i = 0; i<ClistaDeEspera; i++)
{
printf("coock");
if(strcmp(listaDeEspera[i].matricula, matricula) == 0)
{
pos=i;
i=ClistaDeEspera;
}
}
return pos;
}

It has no errors but my program crashes whenever I call this function. Why?

最佳答案

如果它在该函数中崩溃,最可能的原因是参数被赋予 strcmp导致它失败。例如,如果它们实际上不是 C 样式的字符串,或者如果您传入的长度值 ( ClistaDeEspera ) 对于实际数组来说太大。

因此您需要检查 listaDeEspera[i].matricula哪里i范围从 0ClistaDeEspera - 1包括,和 matricula .

这些值之一很可能不是您认为的那样。

顺便说一句,通过摆脱 store-position-and-force-loop-end 方面,您的代码可以变得“更干净”。使用这样的一小段代码,多个返回点对可读性没有真正的不利影响:

int procurarMatriculaLista(tipoEspera listaDeEspera[], int ClistaDeEspera, char matricula[]) {
for (int i = 0; i < ClistaDeEspera; i++)
if (strcmp (listaDeEspera[i].matricula, matricula) == 0)
return i;
return -1;
}

关于不知道为什么崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539825/

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