单项选择题

有以下程序:
# include <stdio.h>
# include <stdio.h>
void fun(int *p1, int *p2; int*s)
s=(int*) malloc(sizeof(int));
*s=*p1+*p2;
free(s);

main()
int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d\n",*q);

程序运行后的输出结果是( )。

A.42
B.0
C.1
D.41