#include <iostream>
using namespace std;
int main()
{
unsigned short W, K; //W - liczba wierszy
cin >> W >> K; //K - liczba kolumn
int **tab=new int *[W];
cout << "\n";
for(unsigned short i=0;i<K;i++)
{
tab[i]=new int[K];
}
unsigned short n=1;
//inicjalizacja
for(unsigned short i=0;i<W;i++)
{
for(unsigned short j=0;j<K;j++)
{
tab[i][j]=n;
n++;
}
}
//wyswietlanie
for(unsigned short i=0;i<W;i++)
{
for(unsigned short j=0;j<K;j++)
{
cout << tab[i][j] << "\t";
}
cout << "\n\n";
}
//usuwanie
for(unsigned short i=0;i<K;i++)
{
delete [] tab[i];
}
delete [] tab;
return 0;
}
Gdy podaję na wejście liczby o równych wartościach, np. 5 i 5, to jest ok (http://ideone.com/HYp19). Problem zaczyna się w przypadku różnych wartości, np.:
#5 i 7, wtedy Windows raportuje błąd po wyświetleniu zawartości tablicy. Przykład: http://ideone.com/FnBlr
#7 i 5, wtedy jest błąd jest raportowany przy inicjalizacji tablicy. Przykład: http://ideone.com/9wj4b
#9 i 6, podobnie jak w poprzednim punkcie.
Program kompiluje się i uruchamia bez problemu.