Skip to content
Related Articles
Open in App
Not now

Related Articles

C | Pointer Basics | Question 12

Improve Article
Save Article
Like Article
  • Difficulty Level : Medium
  • Last Updated : 05 Feb, 2013
Improve Article
Save Article
Like Article

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

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

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

My Personal Notes arrow_drop_up
Like Article
Save Article
Related Articles

Start Your Coding Journey Now!