Здравствуйте, Аноним!
Отформатировал был, тогда всё сразу стало бы видно:
int** mass,n,i,j;
cout << "Oboznachte razmer matricy\n";
cin >> n;
mass = new int*[n];
for (int i = 1; i < n-2; i++)
{
mass[i] = new int [n];
for (i = 2; i <= n-2; i++)
for (j=2; j <= n-2; j+2)
mass[i][j] = 2;
}
mass[0][0] = mass[n-1][0] = mass[0][n-1] = mass[n-1][n-1] = 1;
cout << mass[i][j];
getch();
Не знаю, как там на борланде, но из общих размышлений мне кажется, что вылетать может в самом внутреннем цикле. Т.е. выделяется одна строчка матрицы, а дальше идёт двойной цикл заполнения ВСЕЙ матрицы. Нехорошо. Ещё одно место с вылетом — переменная i в самом начале объявленна, но неинициализированна. В заголовке цикла переменная i опять объявляется, скрывая первую. Выходя из цикла, внутренняя i уничтожается, и в строчке
cout << mass[i][j]
видется изначальная неинициализированная i. Думаю, в данном примере закрывающая фигурная скобка просто поставленна неправильно.
Ещё мне не нравится запись типа
for (j = 2, j <= n-2; j+2)
. Ворнинги иногда полезно читать

Кстати, неплохо бы удалять память за собой, хотя в данном примере это не особо и важно.
Миша.
А>//---------------------------------------------------------------------------
А>#include <vcl.h>
А>#pragma hdrstop
А>#include <iostream.h>
А>#include<conio.h>
А>//---------------------------------------------------------------------------
А>#pragma argsused
А>#pragma argsused
А>void main()
А>{
А> int **mass,n,i,j;
А> cout << "Oboznachte razmer matricy\n";
А> cin >> n;
А> mass = new int*[n];
А> for (int i=1; i<n-2; i++)
А> { mass[i] = new int [n];
А> for ( i=2; i<=n-2; i++)
А> for ( j=2; j<=n-2; j+2)
А> mass[i][j]=2; }
А> mass[0][0]=mass[n-1][0]=mass[0][n-1]=mass[n-1][n-1]=1;
А> cout<<mass[i][j];
А> getch(); }
А>//----------------------------------------------------------------------------