Table of Contents
In this tutorial, I will take you through sizeof function in C. sizeof operator or method is used to determine the size that occupied by a variable or data type or pointer variable in the memory. It returns the total number of bytes it occupies in the memory. It is an inbuilt C function.
sizeof function in C
Also Read: Top 17 GIT Command Examples on Linux
1. Check the Size of Int Data Type
If you want find the size of Int data type, then you can find it by using sizeof(int)
function with int
passed as an argument in below program. Here the output will be 4 bytes as Int data type takes 4 bytes of space in the memory.
#include <stdio.h>
void main()
{
printf("Size of Int is:%d\n",sizeof(int));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Int is: 4
2. Check the Size of Char Data Type
If you want to find out the size of a char data type then you can use sizeof(char)
function with char
as argument. You can see from the output, it returns 1 byte of size which is the size it takes in memory.
#include <stdio.h>
void main()
{
printf("Size of Int is:%d\n",sizeof(char));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Char is: 1
3. Check the Size of Float Data Type
If you need to determine the size of float data type, then you can do it by using sizeof(float)
function with float
passed as an argument. Notice that it also returns 4 bytes of space same as int data type size.
#include <stdio.h>
void main()
{
printf("Size of Float is:%d\n",sizeof(float));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Float is: 4
4. Check the Size of Double Data Type
If you want to find out the size of double data type, then you need to use sizeof(double)
function with double
passed as an argument to sizeof operator as shown in below program. You can see from the output,it returns 8 bytes which is the size it takes in memory.
#include <stdio.h>
void main()
{
printf("Size of Double is:%d\n",sizeof(double));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Double is: 8
5. Check the size of Structure without Padding
If you want to check the size of the structure which contains same kind of datatype then compiler does not need to do padding here and shows the total number of bytes contained by the member variables inside the Structure. Here there are 2 char
variables, so it will be 1 + 1 = 2 bytes. Hence you need to use sizeof function in C program as shown below.
#include <stdio.h>
struct test
{
char a;
char b;
}d;
void main()
{
printf("Size of Structure is:%d\n",sizeof(d));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Structure is: 2
NOTE:
6. Check the size of Structure with Padding
If you want to check the size of structure which contains different kinds of data type variables, then the size of structure will be determined by the size of member variable followed by the largest size variable. For example, In this case i have taken char
variable which requires 1 byte and a double variable which requires 8 bytes in memory but longest datatype is double
so total size of structure will be multiple of double
datatype to avoid any alignment issues. Since there are 2 datatype here so it will be 8 + 8 = 16 bytes.
#include <stdio.h>
struct test
{
char a;
double b;
}d;
void main()
{
printf("Size of Structure is:%d\n",sizeof(d));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Structure is: 16
7. Check the Size of 1-D Array
If you want to check the size of 1-Dimensional array, then you need to use sizeof function in C program as shown below. Here we have declared 10 array elements of double
types, hence below program should return 10 x 8 = 80 bytes which is indeed the case. It is due to the fact that each double
data type takes 8 bytes of space in memory.
#include <stdio.h>
void main()
{
double a[10];
printf("Size of Array is:%d\n",sizeof(a));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of Array is: 80
8. Check the Size of 2-D Array
If you want to check the size of 2-Dimensional array a[2][3] having 2 rows and 3 columns, then you need to use sizeof function in C Program as shown below. Here each element is of Int
type, so it should return 2 rows x 3 cols x 4 = 24 bytes which is the same output we got below.
#include <stdio.h>
void main()
{
int a[2][3]= {{6,8,5},{7,4,9}};
printf("Size of 2-D Array is:%d\n",sizeof(a));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of 2-D Array is: 24
9. Check the Size of Pointer Variable
If you want to check the size of pointer variable *a
, then you need to use sizeof function in C Program as shown below.
#include <stdio.h>
void main()
{
char *a = NULL;
printf("Size of pointer variable is:%d\n",sizeof(*a));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of block pointed by a pointer is: 1
10. Check the Size of Structure member Using Structure Pointer
If you want to check the size of a Structure member variable for example int *a in this case, then you can check it by using sizeof(*c->a)
function as shown in below program.
#include <stdio.h>
struct test
{
int *a;
double *b;
};
void main()
{
struct test *c;
printf("Size of Structure member pointer variable is:%d\n",sizeof(*c->a));
}
Compile Your Program
[root@localhost ~]# gcc -o size size.c
Output
[root@localhost ~]# ./size Size of int pointer: 4
Also Read: 30+ AWK Examples for Beginners