Pointers:
A pointer is a variable whose value is a memory address. A pointer contains the memory address of a variable that, in turn, contains a specific value. In this sense, a variable name directly references a value, and a pointer indirectly references a value.Syntax:
type * variable ;Interpretation:
The value of the pointer variable ptr is a memory address. A data item whose address is stored in this variable must be of the specified type.

Dynamic Memory Management:
C/C++ enables programmers to control the allocation and deallocation of memory in a program for any built in or user defined type.The ability for a program to obtain more memory space at execution time to hold new nodes, and to release space no longer needed is known as dynamic memory management.
Syntax:
int *num = (int *)malloc(sizeof (int)*numCount);or
int *ptr = (int *)calloc(numCount, sizeof (int));
/* returns a pointer to a section of memory just large enough to hold the integers, whose quantity is being obtained through user input stored in the variable numCount. */
free(ptr); //returns to the system whatever memory was pointed to by ptr.
POINTER TO POINTER(Double Pointer) DECLARATION:
Syntax:
type ** variable ;Interpretation:
The value of the pointer variable ptr2ptr is a memory address of another pointer.
Implementation of Pointers in C:
#include <stdio.h>
#include<malloc.h>
int main()
{
int row,col,x,y;
printf(“Enter number of rows:”);
scanf(“%d”,&row);
printf(“Enter number of columns:”);
scanf(“%d”,&col); //allocate memory for xs
int **ptr = (int **)calloc(row, sizeof (int*));
//for each x allocate memory for yumns
for(x=0;x<row;x++)
*(ptr+x) = calloc(col,sizeof(int)); //Storing elements
for (x=0;x<row;x++)
for(y=0;y<col;y++)
{
printf(“Enter number: “);
scanf(“%d”,&ptr[x][y]);
}
//Displaying pointer to pointer to ptr
printf(“nYou have entered:n”);
for (x=0;x<row;x++)
{
for(y=0;y<col;y++)
{
printf(“%d “,ptr[x][y]);
}
printf(“n”);
}
free(ptr);
//returns to the system whatever memory was pointed to by ptr.
return 0;
}
Comments
Post a Comment