How to Find Size of Dynamic Array in C? (original) (raw)
Last Updated : 11 Mar, 2024
In C, dynamic memory allocation allows us to manage memory resources during the execution of a program. It’s particularly useful when dealing with arrays where the size isn’t known at compile time. In this article, we will learn how to find the size of a dynamically allocated array in C.
Find Size of a Dynamically Allocated Array in C
When we dynamically allocate an array using the malloc
, calloc
, or realloc
functions, the size of the array isn’t stored anywhere in memory. **Therefore, there’s no direct way to find the size of a dynamically allocated array. To manage the size of a dynamically allocated array, we must keep track of the size separately.
C Program to Keep the Track of Dynamically Allocated Array
The below program demonstrates how we can keep track of the size of a dynamically allocated array in C.
C `
// C program to illustrate how to keep track of dynamically // allocated array #include <stdio.h> #include <stdlib.h>
int main() { int size = 5; // size of the array int* arr = (int*)malloc( size * sizeof(int)); // dynamically allocated array
// fill the array
for (int i = 0; i < size; i++) {
arr[i] = i;
}
// print the array
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
free(arr); // free the array to avoid memory leak
return 0;
}
`
**Note: In C, it’s generally recommended to use structures or linked lists when you need to keep track of the size of a dynamically allocated array during runtime. This provides more flexibility and control over the memory.