Stack overflow with sqrtf

Hi,

No doubt I am doing something stupid, but I cant get to the bottom of this error, so any help would be massively appreciated! I came across it using dx9.0c, calling the D3DXVec3Length function. Using this function with a certain D3DXVECTOR3 caused:

Unhandled exception at 0x102c6502 (msvcr80d.dll) in blah.exe: 0xC00000FD: Stack overflow.

With the code breaking at:

Code:

`D3DXINLINE FLOAT D3DXVec3Length`

( CONST D3DXVECTOR3 *pV )

{

#ifdef D3DX_DEBUG

if(!pV)

return 0.0f;

#endif

#ifdef __cplusplus

return sqrtf(pV->x * pV->x + pV->y * pV->y + pV->z * pV->z); // BREAKING HERE!

#else

return (FLOAT) sqrt(pV->x * pV->x + pV->y * pV->y + pV->z * pV->z);

#endif

}

So I thought instead I will write my own vector length function, using the same idea. Sure enough it had the same problem. By using breakpoints I stopped it before its stack overflow and found that the vector was:

pV->x = 0.11898671

pV->y = 0.077150002

pV->z = 0.0

Meaning that the sqrt function's input is 0.020109955. I next tried just writing the code:

Code:

` sqrtf(0.020109955f);`

...which caused the same over flow. Changing the number to something else however appears to work.

So what glaringly obivous thing have I missed? Is there just something I do not know about the square root function? I am using VC++ 2005. Cheers for any input on this,

Skusey