Добре де, тая памет трябва да се dereference-ва, иначе как ще умножаваш и събираш там съдържанието на стойностите, намиращи се на тоя адрес. Нямам никаква идея кое ще е по-бързо, и на мен ми е интересно.
При варианта с указатели, нямаме указатели към масиви а към int или каквито там стойности, идеята е да се прави с pointer аритметика. Демек където ще кажеш a[2][2] примерно ще е *(b+2*length+3).
Някой дето разбира повече да се изкаже, аз нямам идея

Грр спи ми се и пиша глупости