Facebook Page Twitter Page LinkedIn Page
× C Standard Library

The C <stddef.h> ptrdiff_t type is an alias of one of the fundamental signed integer type. This is a type able to represent the difference of two pointers.

ptrdiff_t is used for pointer arithmetic and array indexing. A pointer difference is only guaranteed to have a valid defined value for pointers to elements of the same array (or for past-the-last element of the same array).

In the <stddef.h> header file, it is defined as follows:

typedef /*implementation-defined*/ ptrdiff_t;              


The below example shows the usage of ptrdiff_t type.

#include <stdio.h>
#include <stddef.h>
int main (){
  //creating an array of size 10
  int Arr[10];
  //pointer to the end of the array
  //(past-the-last element of the array)
  int* end = Arr + 10;

  //pointer to the start of the array
  int* start = Arr;

  //size of the array
  ptrdiff_t size = end - start;

  printf("Size of the array: %d", size);
  return 0;

The output of the above code will be:

Size of the array: 10

❮ C <stddef.h> Library