No.
Prototypes are the more formal information on the function, so the data type (like "struct",int, char, etc.), needs to be included.
NOTE: If the typedef was BEFORE (above), the prototype, and the name was not the same as the name of the array, then your prototype question you asked would be answered: Yes!
In the actual CALL of the function, you would only need the name of the struct array, name of the first int variable, and the name of the second int variable.
prototype:
void Quicksort(struct EmployeeRecord record[], int, int);
call:
Quicksort(record, intVariable1, intVariable2);
The prototype (by custom posted above main() ), can be exactly the same as the very first line of the function itself - but it can use just the data type, and not include the names of the variables.
The call MUST include the names of the variables being passed to the function, but need not include the data types of those variables.
In your code, the typedef is confusing - because you give it the same name as the array. Honestly, I've never seen such a thing, so I don't know if it's OK, or not, but I know it's confusing to me. Can you make it:
Code:
typedef struct Employeerecord Record; //with a capital R
That would help me understand your code.
Then in the sorting function, you need to refer to the actual record[left].lastName (I believe you named it), member name.
record[left] is not going to work. You need to pinpoint the comparison to record[left].lastName, see?
Also, in giving the pivot a value:
1) The pivot must be a char array equal in size to that of the lastName record member.
2) You can't just assign it:
Code:
pivot=record[(start+finish)/2];
Because it's a string, not an int. (Also, this does not refer to any struct.member in particular). You have to refer to record[(start+finish)/2].lastName, and you need to use strcpy() (or some copy function), to copy the string over to the pivot.
Code:
strcpy(pivot, record[(start+finish)/2].lastName);
Think strings for all your comparisons.