zweiteres wird nicht automatich freigegeben. Aber was ist so schwer daran das selbst zu machen? Du hast sie doch schon in einem Array. Also durchlaufe einfach am Ende das Array und gibt darin alles frei.
Zu deiner Frage was passiert wenn man das nicht macht:
Das ist Abhängig vom Betriebssystem. Unter XP wird sobald ein Prozess beendet wird auch all der Speicher, den dieser angefordert hat, wieder frei gegeben.
Unter Windows 3.11 wird der Speicher zum Beispiel nicht frei gegeben und somit fehlt dieser dem nächsten Programm.
Gleiches gilt, wenn ich mich nicht irre, auch für Windows 95 und Windows 98.