×

Calloc in C

The calloc() is a library function in C which is used for memory allocation. The calloc() function dynamically allocates multiple blocks of memory to complex data structures.

This includes data structures such as arrays.

An array is a collection of items or logically related variables of identical data type which are stored in contiguous memory locations. Once the size of array is declared, it cannot be changed and hence the size of array declared may not be sufficient enough for the task it was declared for. This may lead to unwanted termination of the program or not getting the desired outputs.

This problem can be resolved by allocating the memory during run time, this process has to be manual. This manual declaration of memory at run time is known as dynamic memory allocation and this is carried by a special set of functions known as library functions. The calloc() is a library function in C which is used for dynamic memory allocation.

The malloc() function also performs the task of memory allocation but the allocated memory is uninitialized.

Meaning

The term calloc is short for contiguous allocation and is a library function in C which allocates the memory which is requested and returns a pointer to it. The pointer is returned to the beginning of the block of memory.

Note: The block of memory allocated is set to zero, i.e., all bits are set to zero.

Declaration

void *calloc (n, size)

where, n = number of elements to be allocated

             size = Size of the elements

Eg: p = (int*) calloc(10, sizeof(int));  /*This statement allocates contiguous space in 

    memory for 10 elements of type int */

Program: C program for showing the usage of calloc() function

#include <stdio.h>
#include <stdlib.h>


int main () 
{
   int i, n;   //declaring the local variables
   int *p;


   printf("Enter number of elements : "); //number of elements required
   scanf("%d",&n); //scanning the input


   p = (int*)calloc(n, sizeof(int));  //declaring the calloc function


   printf("Enter the numbers here (%d numbers) :\n",n); //numbers entered by user
   for( i=0 ; i < n ; i++ ) {


      scanf("%d",&p[i]);
   }


   printf("The numbers entered are as follows : ");


   for( i=0 ; i < n ; i++ ) {


   printf("%d ",p[i]);
   }


   free( p );


   return(0);
}

Output of the following program:

Calloc in C

Conclusion

The calloc() function is a library function in C and it is used for allocation of space for complex data types such as an array. It allocates space for an array of elements, initializes them to zero and then returns a pointer to the memory.

Note 1: Difference between malloc and calloc

              malloc() function allocates memory but does not set the memory to zero, i.e.,

             memory is uninitialized.

            calloc() function on the other hand allocates memory and set the memory to

             zero, all bits are initialized to zero.

Note 2: The calloc() function returns a pointer to the allocated memory, but if there is an error while allocating memory space like shortage of memory, then the return value is NULL.


Related Topics

Flow Chart of Do while loop in C

This is a flowchart that represents the process of executing the Do while loop in the C programming language Generally, as we know there are three main components of Do While...

3 minutes read.

Entry Control Loop in C

Initially, an entry control loop verifies the termination condition at the entry point. After that, its control passes to the main body of the while or for loop if the...

3 minutes read.

How to use Typedef Struct in C

The “typedef” is a predefined keyword in C programming language which is used to declare the new name to an existing type of variable. For better understanding, if you declare a...

3 minutes read.

Sum of digits in C++

Sum of digits in C++ There are various ways to find the sum of the digits of a number in C++. We can use containers like arrays or other simple cases...

4 minutes read.

C Data type

Data Types in C with Examples Data types are used to define the type of data that a variable can store to perform a specific operation.ANSI C provides three types of...

2 minutes read.

Float in islower() in C

Introduction: This article briefly discusses the float in islower() in C. The islower() function checks if the input character passed inside the function is lowercase. Lowercase letters include (a-z). The islower()...

4 minutes read.

Queue implementation in C

In the C programming language, the queue is the abstract concept that is similar to stacks. However, it is the part of the data structures that work opposite to that...

4 minutes read.

Pointer to pointer in C

A pointer to another pointer is another type of multiple indirections and a chain of many pointers. Generally, a pointer consists of the address of the variable. Once a pointer to...

4 minutes read.

Heap Sort in C

In this tutorial, we will learn about heap sorting in C language, but before going to Heap sort, we have to know the concept of Complete Binary Tree. What is Complete...

8 minutes read.

C Programming Tutorial

What is C Programming C is most popular and widely used computer programming language. It was developed by Dennis Ritchie in 1972 at the Bell Lab. It is used to develop system application software. There...

8 minutes read.

Variable Declaration in C

What is a Variable? A Variable is nothing more than a name for a memory place where data/information can be stored. Any alphabet (from a to z or A to Z), the...

4 minutes read.

Decimal to Hexadecimal in C

Decimal to Hexadecimal in C Let us first understand the definitions of decimal and hexadecimal. In algebra, a decimal number is defined as a number whose whole number part and a...

3 minutes read.

Branching Statements in C

What is branching in c? Branching gets its name from the fact that the computer can select which branch to follow.Programs written in the C language execute statements one after the...

6 minutes read.

memcmp() in C

Introduction: In this article we are discuss about memcmp() function in C. This function permits the person to evaluate the bytes of the two characters, as mentioned above. Depending on...

4 minutes read.

Derived Data Types in C

A variable in a program occupies some space in the computer's memory where some value is stored. Each variable in C has an associated data type. A value to be...

4 minutes read.

Projects on C language in 2024

Introduction Most aspiring programmers learn the C language as their first high-level programming language. The most flexible language utilized in every industry is, without a doubt, C. Even after 50 years...

9 minutes read.

abs() function in C

abs() function is a built-in function present in the stdlib.h header file. It returns an integer value. abs() function converts a negative value into a positive value. For example, if...

4 minutes read.

Type qualifiers in C

Type qualifiers in C: In the C programming language, type qualifiers are the keywords that prepend to the variables to change their accessibility, i.e., we can tell that the type...

4 minutes read.

Errors in C

Errors in C Errors are nothing but problems or faults that pretty much occur in all the programming languages. Errors make the behavior of the program seem abnormal, and even the...

4 minutes read.

Add two numbers using the function in C

Here we will learn how to add two numbers by creating function in C. Let’s learn this with help of example. Code: - #include <stdio.h> int add_two_no(int a, int b); int main(){   int first_num,...

1 minute read.