Das mag ja sein, aber offensichtlich blieb das Problem ja bis zum Systemneustart bestehen.
D. h.: Es besteht die Möglichkeit, dass Du versehentlich irgendwo im Arbeitsspeicher was überschrieben hast, an einer Stellen, an der Du es niemals vermuten würdest.
Zufällig wird aber zu dem Zeitpunkt, an dem die Zugriffsverletzung auftrat, versucht, dort auf den Speicher zuzugreifen, aber leider wurde da was zerstört.
Irgendeine
DLL oder das Betriebssystem selbst, hat da wohl irgendwas vermutet, um es auszuführen, aber leider hat das nicht (mehr) geklappt.
Erst durch einen Neustart des Betriebssystem wurde das Problem behoben, da dabei letztlich alles "neu gemacht wird".
Wenn man bei der Arbeit mit Pointern was falsch macht, muss das nicht zwingend das eigenen Programm betreffen, sondern es kann eine Auswirkung "irgendwo" im System oder in anderer Software haben. So ein Fehler muss nichtmal zwingend auffallen, es kommt halt drauf an, wie kritisch die "zerbeulte" Stelle im Arbeitsspeicher ist.
Die Ursache solcher Probleme zu finden ist nicht zwingend trivial, zumal so ein "Seiteneffekt" nicht unbedingt sofort auffallen muss.