Arjun Suresh (talk | contribs) |
Arjun Suresh (talk | contribs) |
||
Line 12: | Line 12: | ||
#'''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 = &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(...);''' 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 | + | #'''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 hence is 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)
Just to ensure no confusion is there
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
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)
Just to ensure no confusion is there
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