I am accepting a structure array as an argument, and trying to return that structure array.
But your function signature says that you're trying to return a single Cost.
Why are you trying to return the Cost array? You've passed a pointer to that array as a parameter so any changes you make to that array in the function are already reflected in the array in the calling function.
Even though Cost cost[] looks like you're passing an array, in reality that's just a pointer Cost *cost. When you're passing the cost array to the function, you're just passing the pointer to the first Cost in the array. So any modifications you do in the function will be reflected in the array.
This also means that there is no point in specifying the size of the array when specifying the parameter type, as you do here: Cost parseAccount(fstream dataFile, Cost cost[4]);. Also, you probably want to pass the fstream object by reference.
Finally, you seem to have forgotten to actually call parseAccount in main before printing the values of the cost array.
Example with helper methods for parsing and outputting Costs to streams. I set the parse method itself to accept istream reference, so it should support istringstream, ifstream, etc.