Arjun Suresh (talk | contribs) |
Arjun Suresh (talk | contribs) |
||
Line 10: | Line 10: | ||
A pointer can hold any address (any int value can be considered an address), but the programmer should ensure that the address is within the memory range allocated to the process, or otherwise a segmentation fault can occur. Two normal ways of doing this is | A pointer can hold any address (any int value can be considered an address), but the programmer should ensure that the address is within the memory range allocated to the process, or otherwise a segmentation fault can occur. Two normal ways of doing this is | ||
− | #p = &var1; | + | #p = &var1; All program variables are assigned addresses within the program space. Hence, we can take the address of any program variable and assign it to a pointer |
− | |||
#p = malloc(...); | #p = malloc(...); | ||
malloc is a function used to create memory dynamically (memory is created in heap while normal variables are stored in stack). This dynamic memory also falls within the address space of the program and is hence safe to assign to a pointer variable | malloc is a function used to create memory dynamically (memory is created in heap while normal variables are stored in stack). This dynamic memory also falls within the address space of the program and is hence safe to assign to a pointer variable |
In C language a pointer is just a normal data type that can hold an address
There is just two operators a programmer should know about pointer usage
&var => returns the address of var *var => returns the content of value of var
(it takes the value of var as address and returns the value of that address) To make the confusion clear
var => returns the value of var
A pointer can hold any address (any int value can be considered an address), but the programmer should ensure that the address is within the memory range allocated to the process, or otherwise a segmentation fault can occur. Two normal ways of doing this is
malloc is a function used to create memory dynamically (memory is created in heap while normal variables are stored in stack). This dynamic memory also falls within the address space of the program and is hence safe to assign to a pointer variable
In C language a pointer is just a normal data type that can hold an address
There is just two operators a programmer should know about pointer usage
&var => returns the address of var *var => returns the content of value of var
(it takes the value of var as address and returns the value of that address) To make the confusion clear
var => returns the value of var
A pointer can hold any address (any int value can be considered an address), but the programmer should ensure that the address is within the memory range allocated to the process, or otherwise a segmentation fault can occur. Two normal ways of doing this is
malloc is a function used to create memory dynamically (memory is created in heap while normal variables are stored in stack). This dynamic memory also falls within the address space of the program and is hence safe to assign to a pointer variable