Well, if you actually try using the compiler it should tell you that is not correct (unless you are compiling as C++ and not C).
Code:
void initialize(FILE *fPtr, struct user x);
This:
Code:
void initialize(fPtr, x){
FILE *filePtr = fPtr;
struct user = x;
is unnecessary (and the red line is another compiler error) -- just refer to fPtr and x.
Also, you might as well use a pointer for the struct too:
Code:
void initialize(FILE *fPtr, struct user *x); // prototype
struct user defValue = { 0, "john", "doe", 0 };
initialize(filePtr,&defValue); // use "address of" operator &
Now let me emphasis something: It is a BIG BIG mistake to be just writing code and not trying to compile it, which is obviously what you are doing because your code has various obvious (even, non-sensical) errors which will show up when you try and compile it. This is why it is a complete waste of time to write code without using the compiler every few lines. Otherwise, you end up making up your own syntax which resembles a C program, but it is not a C program, and is therefore probably not much good for anything.
If you do not have access to a compiler where you are right now, just stop. Don't bother doing anything more until you do. It's a waste of time. Honestly.