Prikaz jedne poruke
Stara 9.1.2014, 11:46   #277
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: How to... C++

Niz stringova nije matrica.
Iako je prirodno da pomisliš to pošto je i sam string niz, niz stringova ne mora da bude nužno matrica, zato što u nizu stringova možeš da imaš varirajuće dužine stringova i samim tim nemaš matricu.

Možeš da imaš ovako u nizu stringova:

12345678'\0'
12345'\0'
123456789'\0'
123'\0'
1234'\0'

Primeti da je nazubljeno, to samim tim nije matrica.


Niz stringova se deklariše sa char** pa dinamički alociraš svaki memoriju za svaki string i stavljaš u svakoj iteraciji. Ili da napraviš matricu char[n][m] gde će n da bude broj reči a m dužina najduže reči.
U ovom drugom slučaju ova gore matrica će izgledati

12345678'\0'_
12345'\0'____
123456789'\0'
123'\0'______
1234'\0'_____

Gde _ označava memoriju rezervisanu za taj string ali u suštini ne koristi. Zahvaljujući '\0' kada uzmeš 4 red matrice on će očitati 123 a ne 123______
Nadam se da sam pomogao, pošto umem da budem zbunjujuć

Što se tiče prvog načina, u principu se svodi da deklarišeš niz pokazivača koji će zapravo pokazivati na stringove u memoriji.
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
dsl94 (9.1.2014)