Я объявил структуру и инициализировал ее в основном.
Затем через функцию я хочу сбросить эту структуру, но я не могу.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NOME 20
#define MAX_COGNOME 20
#define MAX_PASSAPORTO 9
#define MAX_LUOGO_DI_NASCITA 15
#define MAX_GIORNO 2
#define MAX_MESE 2
#define MAX_ANNO 4
typedef struct {
char giorno[MAX_GIORNO+1];
char mese[MAX_MESE+1];
char anno[MAX_ANNO+1];
} data; //struct data/*
typedef struct {
char nome[MAX_NOME+1];
char cognome[MAX_COGNOME+1];
data datadinascita;
char luogodinascita[MAX_LUOGO_DI_NASCITA+1];
char numeropassaporto[MAX_PASSAPORTO+1];
int id;
} passeggero; //struct passeggero
void resetUtente();
int main() {
passeggero utenti;
utenti.id = 1;
strcpy(utenti.nome, "John");
strcpy(utenti.cognome, "McCabe");
strcpy(utenti.datadinascita.giorno, "12");
strcpy(utenti.datadinascita.mese, "02");
strcpy(utenti.datadinascita.anno, "1996");
strcpy(utenti.luogodinascita, "London");
strcpy(utenti.numeropassaporto, "AA1234567");
printf("USER BEFORE RESET:");
printf("\n%d ------> %s %s - Born %s-%s-%s in %s | PASSPORT NUMBER: %s\n",utenti.id, utenti.nome,
utenti.cognome, utenti.datadinascita.giorno, utenti.datadinascita.mese, utenti.datadinascita.anno,
utenti.luogodinascita, utenti.numeropassaporto);
resetUtente();
printf("USER AFTER RESET:");
printf("\n%d ------> %s %s - Born %s-%s-%s in %s | PASSPORT NUMBER: %s\n",utenti.id, utenti.nome,
utenti.cognome, utenti.datadinascita.giorno, utenti.datadinascita.mese, utenti.datadinascita.anno,
utenti.luogodinascita, utenti.numeropassaporto);
return 0;
}
void resetUtente() {
passeggero utenti;
int i = 0;
utenti.id = 0;
utenti.nome[0] = '\0';
utenti.cognome[0] = '\0';
utenti.datadinascita.giorno[0] = '\0';
utenti.datadinascita.mese[0] = '\0';
utenti.datadinascita.anno[0] = '\0';
utenti.luogodinascita[0] = '\0';
utenti.numeropassaporto[0] = '\0';
}
Функция resetUtente () должна устанавливать все поля структуры в none, но 2-й printf всегда печатает " Джон МакКейб - 12-02-1996, Лондон, № ПАСПОРТА: AA1234567 «