Example programs showing pointer assignment, addition and subtractions in Data Structures through 'C'

Example programs showing pointer assignment, addition and subtractions:


1.’C’ program to read and print a dynamic array of the user required size:
   #include<stdio.h>
  #include<conio.h>
  #include<stdlib.h>
main(),
{
 int *arr, size, i;
 /* arr is a pointer to store address of dynamically allocated memory*/
 clrscr();
 printf(“Enter the size of array :”);
 scanf(“%d”,&size);
  arr=(int*)malloc(size*sizeof(int));
   /* dynamic memory allocation, pointer assignment operation */

  If(arr= = NULL)
 {
   printf(“Memory allocation error!”);
   exit(0);        /*to terminate program execution */
 }    /*end of if*/
 printf(“\n Enter array elements:”);
 for(i=0;i<size;i++)
    scanf(“%d”,arr+i);                                 /*pointer
addition */
  printf(“\nThe array is:\n”);
  for(i=0;i<size;i++)
  printf(“%d”,*(arr+i));                                  /*pointer
 addition */

}             /* end of main() */


NOTE: The array elements can also be referred as arr[i],
Where ’i’ is the index of the respective element.
The same program 1 for reading and displaying dynamic array can also be written with pointer subtraction as follows:

To read the array and display the array using pointer subtraction operation, the address of the last element is stored in a pointer variable and it is update accordingly by subtracting the respective index of the element to be read or displayed.
   #include<stdio.h>
  #include<conio.h>
  #include<stdlib.h>
main(),
{
  int *arr, size, i,*p;
  /* arr is a pointer to store address of dynamically allocated memory*/
  clrscr();
  printf(“Enter the size of array :”);
  scanf(“%d”,&size);

   arr=(int*)malloc(size*sizeof(int));
   /* dynamic memory allocation, pointer assignment operation */

   if(arr= = NULL)
   {
     printf(“Memory allocation error!”);
     exit(0);        /*to terminate program execution */
     }    /*end of if*/

  p=&a[size-1];/*address of the last element */
  printf(“\n Enter array elements:”);
  for(i=size-1;i>=0;i--)
   scanf(“%d”,p-i);                   /*pointer subtraction*/

  p=&a[size-1]; /*pointer assignment */
  printf(“\nThe array is:\n”);
  for(i=0;i<size;i++)
   printf(“%d”,*(p-i));      /*pointer subtraction*/

}             /* end of main() */

2.’C’ program to implement to searching using dynamic array:


   #include<stdio.h>
  #include<conio.h>
  #include<stdlib.h>
main(),
{
 float *arr, num;  /*array of real numbers */
 int size, i;
 clrscr();
 printf(“Enter the size of array :”);
 scanf(“%d”,&size);
 arr=(float*)malloc(size*sizeof(float));
 if(arr = = NULL)
 {
  printf(Memory allocation error!);
  exit(0);    /*to terminate program execution */
 }        /* end of it*/
 printf(“\nEnter  array elements:”);
 for(i=0;i<size;i++)
 scanf(“%f”,arr+i);                                      /*pointer addition */
 printf(“Enter the real number to search in array:”);
 scanf(“%f”,&num);
 for(i=0;i<size;i++)
   if(num==*(arr+i))
   break;                /*to terminate for loop */
 if(i==size)            /*if i=size then ‘break’ is not executed.
                               Element comparison is over */
 printf(“Search unsuccessful…”);
 else
 printf(“Search successful…”);
} /*end of main() */

3.’C’ program to count the frequency of a number in a dynamic array.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main(),
{
  float *arr, num;  /*array of real numbers */
  int size, i, count=0;
  printf(“Enter the size of array :”);
  scanf(“%d”,&size);
  arr=(float*)malloc(size*sizeof(float));
  if(arr == NULL)
 {
   printf(Memory allocation error!);
   exit(0);    /*to terminate program execution */
 }        /* end of it*/
  printf(“\nEnter  array elements:”);
  for(i=0;i<size;i++)
  scanf(“%f”,arr+i);                                      /*pointer addition */
  printf(“Enter the number, the freq. of which is freq.:”);
  scanf(“%f”,&num);
   /*finding the frequency */
  for(i=0;i<size;i++)
   if(num==*(arr=i))
     count++;        /*count incremented by 1, whenever the num is equal to
                              the array element */                                
  printf(“\n Frequency of number %f is %d”,num,count);
} /*end of main() */

4.’C’ program to find the number of prime numbers stored in a dynamic array.

  #include<stdio.h>
 #include<conio.h>
 #include<stdlib.h>
 int prime(int num)
{
  int i;
  for(i=2;i<=num/2;i++)
  if(num%i == 0)               /*Non-prime */
     return 0;
  return 1;               /*prime */
 }
main()
{
  int  *arr, size, i, count=0;

  printf(“Enter the size of array :”);
  scanf(“%d”,&size);

  arr=(int*)malloc(size*sizeof(int));
  if(arr == NULL)
 {
   printf(“Memory allocation error!”);
   exit(0);                                /*to terminate program execution */
}                         /* end of it*/
 printf(“\nEnter  array elements:”);
 for(i=0;I<size;i++)
 scanf(“%d”,arr+i);                                      /*pointer addition */
 for(i=0;i<size;i++)
 if(prime(*(arr+i)) ==1)
 count++;                                    
 printf(“\nNumber of primes = %d”,count);
} /*end of main() *
Example programs showing pointer assignment, addition and subtractions in Data Structures through 'C' Example programs showing pointer assignment, addition and subtractions in Data Structures through 'C' Reviewed by Bill Smithwick on February 01, 2015 Rating: 5

No comments