Tema: malo C++!
View Single Post
Staro 13.03.2006., 20:42   #23
marioxp
Premium
 
marioxp's Avatar
 
Datum registracije: Feb 2004
Lokacija: Croatia
Postovi: 36
Nemam odgovor na pitanje koje je postavljeno ali me muci jedan problem koji se usko veze teme.
Pitanje je: kako vratiti iz funkcije dvodimenzionalno polje?
Imam dinamicki alocirano dvodimenzionalno polje koje bi trebali stvarati i koristiti neki drugi djelovi koda (bilo bi vise ovakvih polja) pa je zgodno to napraviti kao funciju).
Stvar je u tome da sam pocetnik i ne znam rijesiti problem, mislio sam to napravit kao member function pa ce mi se destructor briniti o brisanju ali neznam kako da vratim 2dimenzionlno polje iz funkcije?????
I jeli mi potreban copy constructor???

Dio koda cu postati:


int _tmain(int argc, _TCHAR* argv[])
{
int nslova=3;//broj slova s kojim se pravi usporedivac u konacnoj verziji ce se unositi "cin"
cout<<"upisi velicinu usporedivaca:"<<endl;
cin>>nslova;
string DNA, primer;
DNA=("mariomariomariomariomariomariomario");
primer = ("mariomario");



string s2;
int sizeP = primer.size();
int stupaca = nslova+1;

char **polje; //dinamicka alokacija polja s pozivacem na pokazivac

polje = new char*[sizeP];
for (int i = 0; i < sizeP; i++) {


polje[i] = new char[stupaca + 1];
polje[i][0] = stupaca;
for (int j = 1; j <= stupaca; j++)
polje[i][j] = i + 1 + j / 100.; //ovo nemam pojma sta je ali tako je u knjizi
}
for(int i=0; i<(sizeP-(nslova-1)); i++) //formula (sizeP-(nslova-1)) je nuzna da ne izadje izvan
{ //polja a daje broj koliko ce se "usporedjica" napraviti
for (int j=0; j<nslova; j++) //for petlja je skraceni oblik pisanja [i+1] + [i+2] +....
{s2 = s2 + primer[i+j];} //jer tako unosom varijable nslova mogu dobit potreban broj ponavljanja

for (int l=0; l<stupaca; l++) //upisuje stringove s2 u "polje". "l" petlju svaki puta vrti a "i" koristi...
{polje [i][l] = s2[l];} // ...od odozgor

s2.erase(); //"s2.erase();"ovo je potrebno da se string svaki puta ocisti jer bez brisanja
} //dolazi do nagomilavanja a ne da mi kida primer u male dijelove za usporedbu

for (int m=0; m<(sizeP-(nslova-1)); m++) //
{
for (int n=0; n<stupaca; n++)
{cout<<polje[m][n];}
cout<<endl;
}
cout<<primer<<endl;


for (int i = 0; i < sizeP; i++)
delete [] polje[i];
delete [] polje;

system("PAUSE");
return 0;
}
__________________
mario
marioxp je offline   Reply With Quote