Mindenképpen változónak (értsd: több értékadást elviselőnek) kell lennie annak a változónak? Mert ha nem, akkor dinamikus memóriafoglalás nélkül 2 megoldást is látok a problémára, az egyik C, a másik C++:
//C
#define A 5
char array[A];
//C++
const int a=5;
char array[a];