The & means "Take the address of an object".
I give you another example:
Code:
void modify(int *i)
*i = 10;
}
void test()
{
int i = 0;
modify(&i);
}
When you want to modify a local variable that was created on the stack,
you pass in the address of the location of the variable in memory.
This way, the called function can modify the variable (it's memory).