unsigned char SIZES[] = {1,5,14,3,...};
Umístit si je do pole, resp. pole polí je velice nešikovné, protože bych vše musel dimenzovat na největší proměnnou.
unsigned char variables[N][max_size]
Při porovnání proměnné 1 s proměnnou 3 tímto přístupem ztrácím 13 bajtů.
Uspornější bude vytvořit si pole pointerů které ukazují na dané proměnné, ty alokuju dynamicky přesně podle definované délky.
unsigned char *pVariables[N]; for(i=0;i<N;i++) pVariables[i] = new unsigned char[SIZES[i]];