I have a programme that adds new positions to structure list. Structure definition is:
struct data
{
char name[50];
char surname[50];
float income;
float taxed_income;
char account[20];
char id[10];
struct data *next, *prev;
};
and function that adds data is :
struct data* add_element()
{
struct data *tmp;
bool flag=true;
float input;
char inpt[50];
tmp = NULL;
do {
printf("Id: ");
fgets(inpt,49,stdin);
if(head != NULL)
flag=id_check(inpt);
}
while(!flag);
strcpy(tmp->id,inpt);
do {
printf("Name: ");
fgets(inpt,49,stdin);
flag=check(inpt);
}
while(!flag);
strcpy(tmp->name,inpt);
do {
printf("Surname: ");
fgets(inpt,49,stdin);
flag=check(inpt);
}
while(!flag);
strcpy(tmp->surname,inpt);
do {
printf("Account: ");
fgets(inpt,49,stdin);
flag=check_num(inpt);
}
while(!flag);
strcpy(tmp->account,inpt);
printf("Income: ");
scanf("%f",&input);
tmp->income=input;
printf("taxed Income: ");
scanf("%f",&input);
tmp->taxed_income=input;
return tmp;
}
programme crashes when I reach first strcpy. all checks are assuring that input meet project spec.