Die Deklaration der Variablen muss bei Ansi-C am Anfang eines Blockes stehen. Bei gnu99 können Variablen auch im Kopf einer Schleife deklariert werden. Welcher Standard verwendet wird, stellt man beim Compileraufruf per option ein (z.B. GCC -std=gnu99 ...)

BTW: Danke für die code-Tags