gpt4 book ai didi

c - 如何在列表项中保存字符串? (C)

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

我无法将此字符串复制到列表中的一个数组,并且程序在到达该行时崩溃。你能帮忙解决这个问题吗?谢谢。

这是代码。

typedef struct pedido pedido, *ppedido;

struct pedido{
char id[5];
int prioridade;
int mesa, n_pratos;
pprato prato[TAM];
ppedido prox;
};

struct prato{
char id[5];
};


ppedido AdicionaPratoMenu(ppedido lista, char ped[],char idprato[])
{
int i,j=0,m=0;

while(lista != NULL){
if((strcmp(lista->id, ped)) == 0)
{
for(i=0;i<lista->n_pratos;i++)
{
m++;
}

strcpy(lista->prato[m]->id,idprato); //This is where it goes wrong

}
lista=lista->prox;
}

return lista;
}

最佳答案

如果TAM == lista->n_pratos,则这是潜在的越界访问:

strcpy(lista->prato[m]->id,idprato);

如前for循环只会以 TAM == m 结束(C 中的数组索引从 0 开始)。要更正,请确保 m < TAM在调用 strcpy() 之前.

关于c - 如何在列表项中保存字符串? (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11185737/

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