Compilers get confused when variables are initialized by a function by taking them as reference in an out argument; this, coupled with the fact that C does not initialize variables by default, most commonly results in a "maybe uninitialized" compiler warning.