Esse Código deve imprimir os dois números primos que vem após o número 18, mas ele não está funcionando como deve, alguém pode me ajudar?, Se puder dizer como posso utilizar algum ponteiro pra consertar

int doisPrimos (int n, int p1, int p2)
{
int c=0;
while (c<2)
{
int i;
for (i=2; i<=n/2 ; i++)
{
if (n%i==0)
break;
}
if (i>n/2 )
{
if (c==0)
{p1 = n;}
else
{p2 = n;}
}c++;
n++;
}
}

int main ( )
{
int p1, p2, n=18;
printf ( "%d %d ", doisPrimos (n, p1, p2));
}