Die gemeinsame Nutzung von C und C++ in einem Programmsystem unterliegt den nachfolgend aufgeführten Einschränkungen.
Freispeicherverwaltung
C++ bietet mit den Sprachmitteln
new
unddelete
eine eigene Freispeicherverwaltung. In C werden für die Speicherverwaltung die Funktionenmalloc
undfree
verwendet. Beide Verfahren dürfen nicht gemischt werden!Wenn ein mit
malloc
angeforderter Speicherbereich mitdelete
freigegeben wird (bzw. ein mitnew
angeforderter Speicherbereich mitfree
), ist das Verhalten undefiniert.Standard-Ein-/Ausgabedateien
C++ bietet eine neue Schnittstelle zur Dateiverarbeitung. Die C++-Standarddateien
cin
,cout
,cerr
undclog
entsprechen den C-Standarddateienstdin
,stdout
undstderr
.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]).