Pointer in C/C++

Avinash Pandey

A pointer is a constant or variable that contains an address of another variable of same type and in future, same address can be used to access the variable. Syntax for pointer declaration: So, using above syntax we can declare any type (built-in or derived) of pointer variable. In following figure, three built-in type of pointer variable has been created …

fork() system call – Operating System

Ankur Kulhari

When a process invokes/calls fork() function, a new process is created which has the same address space. As the address space is copied => PC (program counter) will also has the same value as old process has. That means the newly created process (also called as child process) will start executing from the instruction, parent process is currently executing => …

2-Dimensional (2 D) Array: memory aspect

Ankur Kulhari

A 2-D array can be logically think of array of arrays as shown below: Let’s have a program to understand 2-D array better: output a=0x7ffd8da57dc0 &a=0x7ffd8da57dc0 a[0]=0x7ffd8da57dc0 &a[0][0]=0x7ffd8da57dc0 a[1]=0x7ffd8da57dc8 &a[1][0]=0x7ffd8da57dc8 a[2]=0x7ffd8da57dd0 &a[2][0]=0x7ffd8da57dd0 Note: these values may vary, as the allocated memory location may change every time when a program is executed. The memory view of above program can be analyzed …

Link List

Link List: from memory aspect

Ankur Kulhari

The idea of link list can be understood better with the following example: Suppose Initially there is no data in the memory (RAM): Now in our program we have written following statement: Considering, our compiler takes 2 Bytes to store an integer value, after allocating memory to this data variable, memory may look like: In fig. 2, 2 bytes means …


Array: memory aspect

Ankur Kulhari

An array can be defined as finite collection of homogeneous data, stored in contiguous memory locations. Where, finite: means the number of elements to be stored in array has to be predefined finite number. homogeneous: all the elements of the array should be of same type (i.e. int, char, float etc.). contiguous: all the elements of the array should be …

Binary Tree

Ankur Kulhari

Binary tree is a rooted tree with following constraints: Every node can have at most two children. (zero, one and two) The two children of each node are called the left child and right child corresponding to their positions. A node can have only a left child or only a right child or it can have no children at all. …

Rooted Tree

Ankur Kulhari

A rooted tree is a tree with a node named as root of the tree. A tree which does not has root node, is sometimes called a free tree/unrooted tree (A tree which does not have a root node). Although the term “tree” generally refers to a free tree. Terminologies used: Root: Node at the top of the tree. Parent: …


Ankur Kulhari

Tree: is an undirected graph with properties: is to be connected graph – there should exist a path between any two nodes/vertices no cycles – there should not exist a path in which starting and ending nodes are same a simple cycle is formed if any edge is added it – an edge is the connecting link between two nodes. …

Quick Sorting – A complete analysis with c/c++ and JAVA

Ankur Kulhari

Quick Sorting is a Divide and Conquer sorting method. Before going ahead, let’s take an example to understand the divide and conquer method. Quick Sorting with a real life example There are 10 balls, all with different weight. Arrange them in ascending order of their weight. Approach: Step 1: Arrange all the balls in a line. Step 2: Take out …