The major disadvantage of using pointers is that hackers easily identify source code address and can modify the source code. It is possible to access even the restricted memory space
Uninitialized pointers might cause segmentation fault.
Dynamically allocated block needs to be freed explicitly. Otherwise, it would lead to memory leak.
Pointers are slower than normal variables.
If pointers are updated with incorrect values, it might lead to memory corruption.
Pointers require one additional dereference, for example the final rule must read the variable's pointer from memory, then read the varying from the pointed-to storage. This is more slowly than reading the value straight from memory.