Just to add a tiny nuance: C# offers pointers if you agree to be on your own, taking full responsibility for it all.
When I have time, I try to prove that slowing down of my Firefox is due to heap memory fragmentation.
No *malloc can remove fragmentation totally, because alive objects cannot be moved in the heap if pointers are allowed in the code (C/C++).
I could point to some studies done for GC+memory management, but you guys can find them yourselves also with google.