Difference between revisions of "Interview Preparation Pointers"

From Embedded Systems Learning Academy
Jump to: navigation, search
Line 46: Line 46:
 
p = (int*)malloc(sizeof(int)); // Pointer equal to pointer type int that contain memory address space of int
 
p = (int*)malloc(sizeof(int)); // Pointer equal to pointer type int that contain memory address space of int
 
*p = 5;                        // Finally pointer points to location containing value 5
 
*p = 5;                        // Finally pointer points to location containing value 5
 +
</pre>
 +
 +
'''Passing Pointers to a Function'''
 +
 +
 
 +
<pre>
 +
Code:
 +
 +
#include <stdio.h>
 +
 +
/* function declaration */
 +
void value(int *num_ptr_1, int *num_ptr_2);
 +
 +
int main () {
 +
 +
  /* local variable definition */
 +
  int a = 100;
 +
  int b = 200;
 +
 +
  /* calling a function value */
 +
      value(&a, &b);
 +
 +
  return 0;
 +
}
 +
 +
/* function prints the value of  two numbers */
 +
void value(int *num1, int *num2) {
 +
   
 +
printf("The value of num1 is %d & num2 is %d", *num1 , *num2 );
 +
   
 +
}
 +
 
</pre>
 
</pre>

Revision as of 17:00, 18 December 2016

Pointers : A pointer is a variable who's value is address of some other variable i.e. it can be address of some memory location.

<varaible_type> *<name>
eg : 
     int *pointer_to_integer

The above example , we have declared a pointer to a variable (pointer_to_integer), the variable stores the address of an integer .

Implementation of Pointer :

Code:

#include <stdio.h>
int main(void) {
	int var = 20;
	int *p;
	p = &var;
	
	printf("Pointer %d\n",var);
	printf("Pointer %d\n",&var);     // Prints the address of the varaible (var)
	printf("Pointer %d\n",p);        
	printf("Pointer %d\n",*p);	     // Prints the value that (p) points to   
	return 0;
}

Output :

Pointer 20
Pointer 1809844068
Pointer 1809844068
Pointer 20

Malloc

  The Malloc function dynamically allocates memory when required. The function allocates size of byte of memory and returns a pointer to the first byte of NULL.
Syntax:
pointer = (type)malloc(size in bytes);
 
Code:

int* p;                        //Declare pointer                          
p = (int*)malloc(sizeof(int)); // Pointer equal to pointer type int that contain memory address space of int
*p = 5;                        // Finally pointer points to location containing value 5

Passing Pointers to a Function


Code:

#include <stdio.h>
 
/* function declaration */
void value(int *num_ptr_1, int *num_ptr_2);
 
int main () {

   /* local variable definition */
   int a = 100;
   int b = 200;
 
   /* calling a function value */
      value(&a, &b);
 
   return 0;
}
 
/* function prints the value of  two numbers */
void value(int *num1, int *num2) {
    
 printf("The value of num1 is %d & num2 is %d", *num1 , *num2 );
    
}