Given a Binary Tree, find vertical sum of the nodes that are in same vertical line. Print all sums through different vertical lines. Examples: 1 / \ 2 3 / \ / \ 4 5 6 7 The tree has 5 vertical lines Vertical-Line-1 has only one node 4 => vertical sum is 4 Vertical-Line-2: has only one node 2=> vertical sum is 2 Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 Vertical-Line-4: has only one node 3 => vertical sum is 3 Vertical-Line-5: has only one node 7 => vertical sum is 7 So expected output is 4, 2, 12, 3 and 7
behavior undefined...the program may crash because free should be passed the address returned by malloc, calloc or realloc only...the exact reason for this is unknown to me.
ReplyDelete(may be there is a list of dynamically allocated memory. whenever a call to free is made, this list is checked and if the adress is found, it is made available for allocation by adding it to the list of free chunks and if not, then it leads to an undefined behavior).
yes you are right behaviour of this program is undefined because when you allocate memory using malloc or calloc etc. some meta-data (size of allocated memory,next free chain of memory etc.)is stored one location before the address returned by these functions.so when you do ptr++,you are unable to retrieve that information,so program crashes.
ReplyDelete