それと、構造体はmemsetで0に初期化するよりも、メンバーごとに初期化した方がいいと思う。
NULLや0.0は全ビット0とは限らないし。