Здравствуйте, Paul4936, Вы писали:
P>прошу помочь.
Все дело в том, что ты пытаешься сохранить всю память как единый блок. Природа твоих массиов совсем иная, они располагаются в разных участках памяти и ты сохраняешь совсем другие данные с выходом за допустимый диапазон.
В общем как вариант, чтобы получить требуемое поведение — убери выделение памяти в цикле и сразу пиши:
TYPE* data = new TYPE[LENGHT*WIDTH];
Ну а дальше логически представить эту память как двумерный массив думаю не составит труда