gpt4 book ai didi

c - 0xC0000005 : Access violation reading location 0x00000008. C代码

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

我目前正在为大学工作做一个项目,在做这个项目时我遇到了这个错误,但我不知道是什么原因造成的。

它指向的行是:if ((*compara)(ptr->dados, valor))

功能:

void * pesquisar(PNO cabeca, int (*compara)(), void* valor) {

PNO ptr;
for (ptr = cabeca; ptr; ptr = ptr->prox);
if ((*compara)(ptr->dados, valor))
return ptr->dados;
return NULL;

}

结构体

    struct no{
struct no*prox;
struct no*ant;
void *dados;
};

typedef struct no NO;
typedef NO*PNO;
typedef NO**PPNO;

struct cliente{
int ID_cliente;
char nome[60];
char morada[255];
int contribuinte;
struct cliente * prox;
};
typedef struct cliente CLIENTE;
typedef CLIENTE*PCLIENTE;
CLIENTE *cabCliente, *cauCliente;

主要:

PNO Cliente = NULL, Fatura = NULL;
PCLIENTE pesquisa;

char n;
void * Dados;
int opcao;
char nome[60];

case 3:
printf("Insira o Nome: ");
fgets(nome, 60, stdin);
nome[strlen(nome) - 1] = '\0';
pesquisa = pesquisar(Cliente, cmpNomeCliente, nome);
if (pesquisa) printf("Nome é: %s", nome);
else printf("Aluno inexistente");
getch();
break;

最佳答案

for (ptr = cabeca; ptr; ptr = ptr->prox);
if ((*compara)(ptr->dados, valor))

在此代码序列中,第二行中的 ptr 将始终为 NULL,因为 for 循环一直运行,直到 ptr 表达式为 false并且由于 for 之后的 ;,循环没有主体。

关于c - 0xC0000005 : Access violation reading location 0x00000008. C代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028420/

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