C | Pointer Basics | Question 12

Consider this C code to swap two integers and these five statements after it:

filter_none

edit
close

play_arrow

link
brightness_4
code

void swap(int *px, int *py) 
   *px = *px - *py; 
   *py = *px + *py; 
   *px = *py - *px; 
}
chevron_right

S1: will generate a compilation error
S2: may generate a segmentation fault at runtime depending on the arguments passed
S3: correctly implements the swap procedure for all input pointers referring to integers stored in memory locations accessible to the process
S4: implements the swap procedure correctly for some but not all valid input pointers
S5: may add or subtract integers and pointers.

(A) S1
(B) S2 and S3
(C) S2 and S4

(D) S2 and S5

Answer: (C)
Explanation: S2: May generate segmentation fault if value at pointers px or py is constant or px or py points to a memory location that is invalid
S4: May not work for all inputs as arithmetic overflow can occur

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Article Tags :
C
Practice Tags :