Cześć,
mam za zadanie napisać program szyfrujący metodą permutacyjną. W tym celu na podstawie tekstu i liczby kolumn program alokuje tablicę o odpowiednich wymiarach i wypełnia ją tekstem, a potem odczytuje kolumna po kolumnie. Po udanej kompilacji programu wyskakuje błąd i program zwraca wartość 3221225477.
#include <iostream>
using namespace std;
int k;
string tekst;
int main(int argc, char** argv) {
cout<<"Podaj tekst do zaszyfrowania"<<endl;
getline(cin,tekst);
cout<<"Podaj liczbe kolumn"<<endl;
cin>>k;
int il=tekst.length();
int w=il/k;
if(il%k != 0) w++;
char **tab = new char *[k]; //alokowanie pamięci dla tablicy dwuwymiarowej
for(int i=0; i<k; i++) {
tab[i]=new char[w];
}
int in=0;
for(int p=0; p<k; p++) { //wypelnienie tablicy
for(int q=0; q<w; q++) {
tab[q][p]=(char)tekst[in];
in++;
}
}
for(int a=0; a<k; a++) { //odczytanie tablicy
for(int b=0; b<w; b++) {
cout<<tab[a][b];
}
}
for( int c = 0; c < w; c++ ) //usuniecie tablicy
delete[] tab[c];
delete[] tab;
return 0;
}
Z góry dzięki za pomoc.