How to Create Pointers in C
Pointers are the nightmare of every new C programmer. However, they are also the feature that made C the widespread, powerful programming language it is until today. Like many other programming features and constructs, there is a...
Steps
-
How to Create Pointers in C Picture 1
Decide the type of the pointer (that is, the type of data the pointer will be pointing to). The following tips might help:- If you are declaring a dynamic array, use the array items' data type.
- If you are declaring the pointer to access the data of a variable, use the same data type as the variable.
- If you are declaring the pointer to traverse a list structure, use the list node data type (usually a user created struct).
- If you are declaring the pointer to traverse a tree, use the data type of the tree node, or a pointer to the tree node type as the type (pointer to a pointer of tree node type!).
-
How to Create Pointers in C Picture 2
Declare the pointer using a syntax like this: data-type * pointer-identifier; where- data-type is the type you decided in step 1
- pointer-identifier is the identifier or name of the pointer variable
-
How to Create Pointers in C Picture 3
Assign the pointer to an initial memory location. This can be done using one of the following methods:- Allocating memory and pointing to it by the pointer: int * i = malloc(sizeof(int)*n); where n is the number of memory blocks to assign.
- Assigning the address of a variable to the pointer: int * i = & x; where "x" is an integer and (&) means address-of.
- Assigning an array identifier to the pointer: int * i = array1; where array1 is an integer array(int[] array1;).
- Assigning a reference to the pointer: int * i = a; where "a" is an integer reference (int & a;).
- Assigning another pointer to the pointer: int * i = z; where "z" is another integer pointer (int * z;)
-
How to Create Pointers in C Picture 4
Whenever you need to extract the data item currently pointed to by the pointer, use the value-at-address operator (*): int x = *i; where i is an integer pointer. -
How to Create Pointers in C Picture 5
Use the indexing operator on the pointer as if it was an array whenever you want to get a memory location next to the pointer without actually advancing the pointer. For example, if you have an integer pointer i, you can use i[2] which will retrieve the integer that is after the integer immediately after the integer pointed to by the reference (the integer that is 2 integers after the current location). The pointer i will still be pointing to the same memory location. Another alternative to this is getting the value at the pointer 2 steps after this pointer: *(i + 2) -
How to Create Pointers in C Picture 6
Use the increment(++), decrement(--), += and -= operators whenever you need to change the current location. i += 5; will advance the integer pointer i 5 integers forward. -
How to Create Pointers in C Picture 7
After you finish using the pointer, if you allocated memory to that pointer, make sure you free the allocated memory using the free() function. (free(i); where i is a pointer)
4.5 ★ | 2 Vote
You should read it
- Press type in C
- Array of pointers in C ++
- Cursor this in C ++
- Data type in C programming
- Cursor in C
- How to use Head Pointer on a Mac
- How to fix the mouse pointer disappearing on Windows 10
- Function abs () in C
- Cursor NULL in C / C ++
- How to change the mouse pointer on Windows 11 with many styles and colors
- How to change the mouse pointer size and style in Windows 11
- How to change the pointer sensitivity, touchpad on a Mac