Ich habe dynamische Array von Strukturen.Speicher in C (Array-Strukturen)
struct Pacient
{
char name[30];
char surname[30];
char middleName[30];
char nationality[30];
float height;
float weight;
char phone[30];
struct Date {
int day;
int month;
int year;
}dateOfBirth;
struct Adress {
char city[30];
char street[30];
int numberOfHouse;
} adress;
struct Hospital {
int numberOfHospital;
char nameOfOffice[30];
int numberOfMedicalCart;
char groupOfBlood[10];
char nameOfDiagnosis[30];
}hospitalInfo;
};
Ich brauche hinzufügen, löschen Element aus Array.
Pacient* pacients;
pacients = (Pacient*)calloc(count, sizeof(Pacient));
^meine Deklaration von Array, Anzahl - Größe des Arrays.
Ich machte func addNewPacient und deleteLastElement.
void addNewPacient() {
count++;
pacients = (Pacient*)realloc(pacients, sizeof(Pacient)*count);
......//many scanf...
}
void removeLastElement() {
count--;
pacients = (Pacient*)realloc(pacients, count * sizeof(Pacient*));
}
Für Start, i Eingang Informationen über (Beispiel) 3 Benutzer. Ivan, Petro und Grisha. Ich rufe Methode printAll() und alles in Ordnung. {Ivan ....., Peto ...., Grischa ....}
Nachdem ich Methode addNewPacient() aufrufen können (Nazar) und alle wieder in Ordnung sein wird. {Ivan ....., Peto ...., Grisha ...., Nazar ....} Aber wenn ich das letzte Element aus dem Array entfernen, werden alle fast FAST FAST. {Ivan ......, Petro ....., Grisdksaldaspfpwqe ### 221 ......} Penult Element verzerrt. Ich glaube, ich habe ein Problem mit deleteLastElement(), Hilfe plz)
wo ist ' Pacients erklärt? global? –
'Pacient * pazients; ...' braucht 'Pacient' ->' struct Pacient'? – kaylum
Ich habe einen Fehler gefunden, in Pacients = (Pacient *) realloc (Pacients, count * sizeof (Pacient *)); brauche * nach Pacient löschen. Senq) –