First of all, test your function and its derivative. At the moment, the only thing wrong with them is that they don't return anything. That's the word ... return. Send them a value of x from main and get them to work out the polynomial and its derivative. Print them out in main() and check them on a calculator.
I slightly baulk at giving the name 'function', since it is a keyword in so many programming languages. However, let that be for now. There are also better ways of working out polynomials than a sequence of pow() evaluations. However, again, that is less important for now.
Once you have your function (f) and its derivative (f ') working then you can move on to Newton's method. It only needs a starting value (x or x0) which you can pass as an argument. You might pass an error tolerance (e) or set it in the function itself - up to you. The function will involve a loop which keeps replacing x by
x - f(x) / f'(x)
and you can use your function and its derivative to work this out. Incidentally, there is no necessity to pass pointers to these functions as parameters - they are in the same programming unit, so perfectly well known to your newtons function. You need a loop stopping criterion, which is usually something like
(abs(f(x)) < e ) OR (number of iterations reaches a maximum)
The method isn't guaranteed to work, so you will need the second condition as well. While developing the method you could just get it to do a fixed number of loops instead, just to test that everything else is working.
The function needs to return the final value of x, either as a reference parameter of the function or the value of the function itself - your choice. Actually, during initial development it is not crucial that you have a separate newtons function - you could get this part running in main() first.
Develop your code incrementally. Don't expect to write the whole thing at once and then go through a painful debugging stage.