This code is a simple register of people, containing code and the person's name. I am confused as to passing the struct vector to the "insert" procedure.
When compiling, the program stops working. In the compiler I get the following error: "Program received signal sigsegv segmentation fault". I saw that this error has something to do with incorrect reference to a pointer, but I do not know how to solve it.
Follow the code:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
struct pessoas
{
int codigo;
char nome [50];
};
struct pessoas vetpessoas[5];
int k = 0;
void inserir (struct pessoas *vetpessoas, int *k)
{
char nomeaux [50];
int codaux, i, j;
char resp, resp1;
resp = 's';
if (*k > 0)
{
i = *k;
}
else
{
i = 0;
}
do
{
do
{
printf ("Entre com o codigo:");
scanf("%i",codaux);
}
while (codaux < 0);
do
{
printf ("Entre com o nome:");
scanf ("%s",nomeaux);
}
while (nomeaux == "");
do
{
j = j+1;
}
while (codaux != vetpessoas[j].codigo && j<i);
if (j==i)
{
do
{
printf("Confirma a inclusao (S/N) ?");
scanf ("%s",resp1);
}
while (resp1!='s' || resp1!='n');
if (resp1 =='s')
{
vetpessoas[i].codigo = codaux;
strcpy(vetpessoas[i].nome, nomeaux);
printf ("Inclusao efetuada com sucesso!");
}
else
{
printf ("Codigo ja cadastrado!");
i = i-1;
}
}
if (i < 4)
{
do
{
printf("Deseja continuar incluindo (S/N) ?");
scanf("%c",resp);
}
while (resp1!='s' || resp1!='n');
}
i = i+1;
}
while (resp=='s' && i<=4);
*k = i;
if (i > 4)
{
printf ("Vetor já está Cheio! Não é permitido mais armazenar valores!!!");
}
}
main ()
{
inserir (vetpessoas, &k);
return 0;
}