C programm vorheriges Datum mit aktuellen Datum vergleichen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Ein klassischer Vergleichsfehler von Pointer/Adressen 
datumAktuell==datumAlt,
Du brauchst: strcmp(datumAktuell,datumAlt)

Bei memcpy(datumAlt, datumAktuell, sizeof(datumAktuell)) ist auch ein schwerer klassischer Fehler (implizit Buffer overflow) gemacht worden:sizeof(datumAktuell)!
HIER MUSS sizeof(datumAlt) verwendet werden.
Zufällig sind hier beide string(buffer) 50 char groß, es wird also funktionieren, aber nicht, wenn mal datumAktuell größere gemacht wird.

Woher ich das weiß:Studium / Ausbildung

Tommentator  16.07.2023, 15:16
Du hast noch einen Fehler global und lokal char line[MAX_LINE_LENGTH];

Das ist sicher so nicht gewollt, oder?

0
        if ( strncmp(datumAlt, datumAktuell,
             sizeof(datumAlt)<sizeof(datumAktuell)?
             sizeof(datumAlt):sizeof(datumAktuell)) ==0 )

Wäre eine Option.