The pointer type variables allow the accessing of memory areas with numerical content for the management of the values which represent memory addresses. The dimension of a pointer variable depends on the processor architecture.
In the C++ programming language, the definition template of a pointer variable is:
int *pi;//pointer to int char **ppc;//pointer to char* (pointer \ to pointer of char) float *pv//array with 20 elements of float* type \ (array with 20 pointers to float)
The initiation of a pointer variable is made through the following methods:
- Attributing an existing memory address;
int i=1, *pi; pi=&i;
- Taking over a heap memory address after the calling of standard/ allocation operator functions.
int *pi; pi=(int*)malloc(sizeof(int));//allocation of heap memory \ with standard functions; it is allocated space in heap for \ 1 element of int type
int *pi; pi=new int;//allocation of heap memory with operator; \ it is reserved in heap space for 1 element int type
The usage of a pointer variable involves the allocation of the * operator for extracting the content from the address stored in the pointer variable.
Example for accessing the content from the address stored in a pointer variable:
int i=1, *pi; pi=&i;//storage of memory address of the variable i \ into pointer variable pi; *pi=2;//content modification from memory adrress \ stored in pi; effect: variable i accessing the memory area \ with value 2
For a pointer variable, the value 0 represents the null value. A pointer value which contains the value 0 specifies the fact that it does not store a memory address.
When a heap memory area is not useful for the application, it is de-allocated by the standard function free or the delete operator.