Die gemeinsame Nutzung von C und C++ in einem Programmsystem unterliegt den nachfolgend aufgeführten Einschränkungen.
Freispeicherverwaltung
C++ bietet mit den Sprachmitteln
newunddeleteeine eigene Freispeicherverwaltung. In C werden für die Speicherverwaltung die Funktionenmallocundfreeverwendet. Beide Verfahren dürfen nicht gemischt werden!Wenn ein mit
mallocangeforderter Speicherbereich mitdeletefreigegeben wird (bzw. ein mitnewangeforderter Speicherbereich mitfree), ist das Verhalten undefiniert.Standard-Ein-/Ausgabedateien
C++ bietet eine neue Schnittstelle zur Dateiverarbeitung. Die C++-Standarddateien
cin,cout,cerrundclogentsprechen den C-Standarddateienstdin,stdoutundstderr.Werden korrespondierende Standarddateien sowohl in C als auch in C++ verwendet, ist kein fehlerfreies Verhalten garantiert.
Sollen in einem C++-Programm die C-Standarddateien und die C++-Standarddateien gemischt eingesetzt werden, muss die C++-Funktion
ios::sync_with_stdio()aufgerufen werden (siehe Handbuch „C++-Bibliotheksfunktionen“ [5]).