In C/CPP, is it correct to pass a function a pointer or return a value? Please, what is the difference between this