Da hat Blup eindeutig recht.
Damit hast du den Fehler nicht beseitigt, nur das Symptom Zugriffsverletzung tritt zufällig an dieser Stelle nicht mehr auf. Wenn Speichermanager A Speicher freigibt, den Speichermanager B reserviert hat, wird Speichermanager B irgendwann versuchen darauf zuzugreifen. Das kann in einem völlig anderen Programmteil irgendwann wieder zur Zugriffsverletzung führen und du wirst nicht wissen warum.