Pointers - Programming

Q1:

What will be the output of the program ?
#include<stdio.h>

void fun(void *p);
int i;

int main()
{
    void *vptr;
    vptr = &i;
    fun(vptr);
    return 0;
}
void fun(void *p)
{
    int **q;
    q = (int**)&p;
    printf("%d\n", **q);
}

A Error: cannot convert from void** to int**

B Garbage value

C 0

D No output

ANS:A - Error: cannot convert from void** to int**

No answer description is available. Let's discuss.