ฟังก์ชัน free() ใช้เพื่อจัดสรรหน่วยความจำในขณะที่จัดสรรโดยใช้ malloc(), calloc() และ realloc() ไวยากรณ์ของฟรีเป็นเรื่องง่าย เราใช้ฟรีกับพอยน์เตอร์ จากนั้นจะสามารถล้างหน่วยความจำได้
free(ptr);
free() ไม่ได้ใช้ขนาดใด ๆ เป็นพารามิเตอร์ แต่มีเพียงตัวชี้เท่านั้น ดังนั้นคำถามก็คือว่าฟังก์ชัน free() รู้เกี่ยวกับขนาดของบล็อกที่จะจัดสรรคืนได้อย่างไร
เมื่อเราใช้เทคนิคการจัดสรรหน่วยความจำแบบไดนามิกสำหรับการจัดสรรหน่วยความจำ การดำเนินการนี้จะดำเนินการในส่วนฮีปจริง มันสร้างหนึ่งคำที่ใหญ่กว่าขนาดที่ร้องขอ คำพิเศษนี้ใช้เพื่อจัดเก็บขนาด ขนาดนี้ถูกใช้โดย free() เมื่อต้องการล้างพื้นที่หน่วยความจำ