单项选择题

有以下程序:
#include <stdio.h>
#include <stdlio.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