Эх, если вам нужен код ... :-) C достаточно независим от языка, да?
Предположим, ввод: местоположение [размеры]
Предположим, существует таблица maxBound [измерения], которая содержит максимальные границы каждого измерения таблицы.
int index = 0;
int multiplier = 1;
for (int i = 0;i < dimensions;i++)
{
index += location[i] * multiplier;
multiplier *= maxBound[i];
}
Ваш индекс окажется в поле индекса.
Test:
location = [3,4,5]
maxBound = [10,20,30]
loop initial: index = 0, multiplier = 1.
loop i=0: index = 3, multiplier = 10.
loop i=1: index = 43, multiplier = 200.
loop i=2: index = 1043, multipler = 6000.
Я думаю, что это имеет смысл, но это только выходит из макушки моей головы.