Igazából az if utáni blokk is scopenyitó, tehát annak az elején is deklarálhatsz teljesen nyugodtan és (C89) szabványosan. Amikor C-vel kellett foglalkoznom, és pont hasonló volt a szituáció (nagy tömb kellett), akkor simán nyitottam egy blokkot a függvény közepén, mert a láthatósági/élettartam szabályok szépek és segítenek jobb kódot írni.
"Just a note: variables in ansi C don't have to be declared at the start of a function but rather at the start of a block."
Idézet innen.
----
Hülye pelikán