Consider using a compile-time assert C_ASSERT to validate that the last element of the array is non-zero. Since unspecifies initialisers are always zero, this would catch any increase to the size of the array without adding more initialisers at compile time.
Code:
const int SIZE = 6;
const int tmpArray[SIZE] = {1, 10, 100, 1000, 10000, 100000};
C_ASSERT(tmpArray[SIZE-1] != 0); // You must add initialisers to the above if you change SIZE
That might not work if C doesn't consider the array to be const-enough.
The other option is to have the array declared of each different size but use a #define to determine which one is active:
Code:
#define THE_SIZE 6
const int SIZE = THE_SIZE;
#if THE_SIZE == 1
int tmpArray[SIZE] = {1};
#elif THE_SIZE == 2
int tmpArray[SIZE] = {1, 10};
#elif THE_SIZE == 3
int tmpArray[SIZE] = {1, 10, 100};
#elif THE_SIZE == 4
int tmpArray[SIZE] = {1, 10, 100, 1000};
#elif THE_SIZE == 5
... // Yours would of course go all the way to 10
#endif
Option 3, convert the project to C++ and use template meta-programming!