cok önemli bir c fonksiyonudur ki dogru yerde kullanması büyük ustalık ister. Çoğu kişi kullanır ama hakkını veremez.* Parametre olarak alınmak istenen bellegin boyutu yazılır. Eger istenen bellek alınamazsa NULL döndürür. Şöyle ki malloc la alınan bellek program bitiminde free fonksiyonuyla sisteme geri verilmelidir. Aksi halde memory leak olur. Bellek sürekli alınır ama sisteme hiç geri verilmez. Ki bu da uzun süre calısan programlarda sorun yaratır. Ayrıca malloc ile yer alınca dönen pointerin türü yoktur, voiddir. Bunun kullanılması için istenen türe cast edilmesi gerekir.* Kullanımına örnek verelim:
char* tampon;
tampon=(char*)malloc(10);
Bu kod parçasıyla bellekten 10 bytelik kesimi kendi kullanımım için tahsis ettim ve char* türüne cast ederek kullanıma hazır hale getirdim.
Tabi malloc dendi mi akla hemen sizeof gelir. Zaten kimse malloc la yer alırken parametre olarak 10-20 yazmaz. sizeof kullanılarak istenen tür için yer alınır. Direk boyutun verilmesi kodun taşınabilirligini azaltır. Şöyle ki windows işletim sistemlerinde char, int, double in boyutlarıyla linux işletim sistemlerindeki degişiklik gösterebilir. Bu nedenle kodun taşınabilirligini artırmak için sizeof deyimi kullanılmalıdır.