Point Out Errors

Question 6 :

Point out the error in the program.

#include < stdio . h >

int main()
{
    const int k=7;
    int *const q=&k;
    printf("%d", *q);
    return 0;
}


A). Error: RValue required
B). Error: Lvalue required
C). Error: cannot convert from 'const int *' to 'int *const'
D). No error
Answer : Option D

Explanation :

No error. This will produce 7 as output.


Question 7 :

Point out the error in the program.

#include < stdio . h >
#define MAX 128

int main()
{
    char mybuf[] = "India";
    char yourbuf[] = "PARINAM";
    char const *ptr = mybuf;
    *ptr = 'a';
    ptr = yourbuf;
    return 0;
}


A). Error: cannot convert ptr const value
B). Error: unknown pointer conversion
C). No error
D). None of above
Answer : Option A

Explanation :

Step 1 char mybuf[] = "India"; The variable mybuff is declared as an array of characters and initialized with string "India".
Step 2: char yourbuf[] = "PARINAM"; The variable yourbuf is declared as an array of characters and initialized with string "PARINAM".
Step 3: char const *ptr = mybuf; Here, ptr is a constant pointer, which points at a char.
The value at which ptr it points is a constant; it will be an error to modify the pointed character; There will not be any error to modify the pointer itself.
Step 4: *ptr = 'a'; Here, we are changing the value of ptr, this will result in the error "cannot modify a const object".


Question 8 :

Point out the error in the program.

#include < stdio . h >
const char *fun();

int main()
{
    *fun() = 'A';
    return 0;
}
const char *fun()
{
    return "Hello";
}


A). Error: RValue required
B). Error: Lvalue required
C). Error: fun() returns a pointer const character which cannot be modified
D). No error
Answer : Option C