pondělí 28. listopadu 2011

Dvourozměrné pole o různé délce

Mám tu pevně dané ale různé velikosti několik desítek proměnných, které potřebuju spravovat.

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]];