Line 2: Line 2:
  
 
There is just two operators a programmer should know about pointer usage
 
There is just two operators a programmer should know about pointer usage
  &var => returns the address of var
+
  '''&var''' => returns the address of var
  *var => returns the content of value 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)
 
(it takes the value of var as address and returns the value of that address)
 
To make the confusion clear
 
To make the confusion clear
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; 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(...);
+
#'''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
 
  
  

Revision as of 09:32, 8 December 2013

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

  1. 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
  2. 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




blog comments powered by Disqus

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

  1. 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
  2. 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




blog comments powered by Disqus