In the first example (pass by value), the entire struct is copied onto the stack, in the second case, you pass the address to the struct (I will call this pass by pointer - the term reference is very similar, but not quite the same in syntax, and specific to C++). This has two consequences:
1. Since you copy the struct, it's taking longer to perform the operation. This is usually a small factor, unless there is A LOT of calls to the function.
2. You can modify the variable passed by value without modifying the original variable. This is sometimes exactly what you want, and sometimes exactly what you DON'T want. Choose wisely. If you want to pass by pointer, but not modify the contents, add "const" before the typename, e.g.
Code:
void Init(const MY_STRUCT * ...)
--
Mats