Selama Anda tetap menggunakan Glibc atau pengalokasi "normal" lainnya (jemalloc, tcmalloc, dll.), status heap akan dibagikan oleh semua perpustakaan dan dengan demikian Anda akan dapat membebaskan memori yang dialokasikan di suatu tempat dengan malloc
di mana pun Anda mau.
Secara teori dimungkinkan untuk menghindari ini. Misalnya, beberapa pustaka dapat ditautkan dengan penerapan kustom malloc
/free
(melalui tipuan skrip simbol -Bsymbolic
) yang memiliki tumpukan pribadinya sendiri dan karenanya tidak akan berinteraksi dengan baik dengan bagian lain dari program Anda. Tapi saya belum pernah melihat yang seperti ini di kehidupan nyata.
Kontainer STL didasarkan pada malloc
/free
jadi dimungkinkan untuk meneruskan/memodifikasinya melintasi batas perpustakaan juga. Tentu saja pustaka yang berbeda dapat dikompilasi dengan kompiler berbeda dan versi STL berbeda yang tidak kompatibel (mis. libstdc++, libcxx, dll.) tetapi tipe penampung C++ mereka akan berbeda dan kompiler tidak akan mengizinkan Anda meneruskannya ke modul yang tidak kompatibel.