ReAl (08.10.2005 14:54, просмотров: 1) ответил VAI на Ответ:
Прав, пока не вылезешь за пределы строки :). Т.е., при условии "презумпции вменяемости" - прав. Это дело называется "векторизованный массив"
Лишние круглые скобки не нужны, можешь с чистой совестью писать
a[y][x]
независимо от того
int a[10][20];
или
int *a[10];
в любом случае
a[y][x] эквивалентно *( *(a + y) + x)
/* однако же */
Подумай, может будет лучше чтобы меньше "маллокать и фрикать" (или вообще этого не делать, пусть ни код, ни ОЗУ даром не жрут и не фрагментируют нифига)
int index[23];
int array[раскатать по максимуму];
index[0] = 0; /* это для единообразия, чтобы не проверять y на 0 */
index[1] = index[0] + 10;
index[2] = index[1] + 50;
index[3] = index[2] + 145;
...
index[22] = index[21] + ...;
и вместо a[y][x] делай
array[ index[y] + x]