Boa noite pessoal, gostaria da ajuda de vocês.
Estou fazendo um código que pega informações do usuário, coloca em uma AVL e depois passa os dados dessa AVL para um arquivo. O problema é que quando igualo ou sobreponho as posições da string nome[ ] em relação a string cpf[ ] (ambas da struct "stc_Aluno"), parece haver uma invasão de memória da string nome[ ] em cima da string cpf[ ].
Por exemplo: se uso...
#define CAID 10
#define CANOME 11
#define CACPF 12
typedef struct A
{
char id[CAID];
char nome[CANOME];
char cpf[CACPF];
struct A *esquerdo, *direito;
short altura;
}stc_Aluno;
O código consegue detectar se o CPF digitado já está na lista de dados.
Já quando coloco assim...
#define CAID 10
#define CANOME 12
#define CACPF 12
typedef struct A
{
char id[CAID];
char nome[CANOME];
char cpf[CACPF];
struct A *esquerdo, *direito;
short altura;
}stc_Aluno;
O código não consegue detectar se o CPF digitado já está na lista de dados.
Primeiro o código vai para a função de "idAluno", depois "nomeAluno" e por final a "cpfAluno". Dentro das funções "idAluno" e "cpfAluno", há a função "compareAluno", que é responsável por identificar se o dado digitado já está contido na nossa AVL. No primeiro aluno adicionado, o código roda corretamente, já quando insiro os dados do segundo aluno, no momento da comparação de cpfs, a função ignora se o "cpf" digitado e o "cpf" que está na AVL são iguais.
Vou deixar o link do código logo abaixo, pode fazer a modificação que achar necessária e se possível, coloque aqui nesse post, o que você usou para resolver o problema. https://replit.com/join/snrbwfcatk-lucasverissimo1