codice:
double derive(double(*f)(double),double x0)
{
  const double delta =1.0e-10;
  return (f(x+h)-f(x))/h;
}

Meno codice più efficace.

Comunque il primo parametro è una funzione, quindi:
codice:
double two_x(double x) {
  return 2*x;
}

//....
  double der = derive(two_x, x);