Learning how to use malloc in C programming helps you create data whose size is not known until the program is running. Instead of declaring a fixed-size array or structure, you can request memory from the system, use it safely, and release it with free() when it is no longer needed Most people skip this — try not to. That alone is useful..
Introduction: What malloc Does
malloc is a standard C library function used for dynamic memory allocation. It reserves a block of memory during program execution and returns a pointer to the beginning of that block. This is useful when you need to store data whose size depends on user input, file contents, calculation results, or other runtime conditions Turns out it matters..
The name malloc stands for memory allocation. In C, it is declared in the header file <stdlib.h>, so every program that uses malloc should include it Simple as that..
#include
Memory allocated by malloc is commonly described as being allocated on the heap, although the C standard more precisely calls it memory with allocated storage duration. This memory remains available until you release it with free() or until the program terminates And it works..
Basic Syntax of malloc
The syntax of malloc is:
void *malloc(size_t size);
It takes one argument:
size: the number of bytes to allocate.
It returns:
- A pointer to the allocated memory if successful.
NULLif the allocation fails.
Because malloc returns a void *, it can be assigned to any object pointer type without an explicit cast in C Simple as that..
Simple Example: Allocating One Integer
Here is a basic example of allocating memory for one integer:
#include
#include
int main(void) {
int *number = malloc(sizeof *number);
if (number == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
*number = 42;
printf("The number is %d\n", *number);
free(number);
number = NULL;
return 0;
}
This example shows the most important parts of using malloc correctly:
- Include
<stdlib.h>. - Store the returned pointer.
- Check whether the pointer is
NULL. - Use the allocated memory.
- Release it with
free().
Setting the pointer to NULL after freeing it is not required, but it can help prevent accidental reuse of an invalid pointer.
Allocating an Array with malloc
One of the most common uses of malloc is creating an array whose size is known only at runtime.
#include
#include
int main(void) {
int count;
printf("How many numbers? ");
if (scanf("%d", &count) != 1 || count <= 0) {
printf("Invalid count.
int *values = malloc(count * sizeof *values);
if (values == NULL) {
printf("Memory allocation failed.\n");
return 1;
}
for (int i = 0; i < count; i++) {
values[i] = (i + 1) *