Still, the array bounds are constrained by MAX in the loop. If tab_create is some goshawful unitialized number, it should still fit in an int, or the compiler would complain. Do you have a good compiler with all warnings and errors turned on? You really, at this point, should show "main", since all the code that you show is functional on my system, with my own "main", of course.
You will probably find MAX defined elsewhere in the standard library (a thangy to return the max of two values), but your #define should override.