Me revoici avec mes quelques questions, ici toujours en C (mais pur)

Voilà j'ai une erreur de compilation que je ne comprends pas lors d'une déclaration :
int colonne = 2; int tb [][colonne] = {blblabla};
PS: le blblabla n'a pas d'intérêt ici !
le compilateur "wingw32-gcc" de code block (sous windows 7) ne m'accepte cette déclaration - par contre si j'écris directement
int tb [][2] = {blblabla};
La c'est bon... ?!?! pourquoi je ne peux déclarer une variable colonne à l'initialisation de mon tableau, alors qui si je veux lire ce tableau dans une boucle for la je peux placer une nom de variable
Avez-vous une explication ?
Bonne lecture
Amicalement le cht'y Philou