[C] pitanje u vezi ispisivanja unazad

[C] pitanje u vezi ispisivanja unazad

offline
  • Pridružio: 10 Mar 2009
  • Poruke: 101
  • Gde živiš: Podgorica

#include <stdio.h> int main() {     int n, i, red[i];         printf("Koliko brojeva: ");     scanf("%d", &n);         for (i=0; i<n; i++)     {              scanf("%s", &red[i]);              }              printf("\n\n\n");     for(i=n-1; i>=0; i--)     {              printf("%s, ", &red[i]);              }     getch(); }

Program radi odlicno, samo jedno pitanje.
for(i=n-1; i>=0; i--)     {              printf("%s, ", &red[i]);              }

Kod ovog dijela kada stavim da je i=n onda mi prije niza brojeva upise neke simbole
Citao sam negde da ako je red[6] to je od 0 do 5 sto znaci da je 6 prazan, zbog toga ako stavim da je i=n, pocece od red[6] a taj 'string' (?) je prazan i zbog toga ispise te neke simbole??



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

int n, i, red[i];
Ne mozes u C-u da stavis red[i] kad "i" nije inicijalizovana. Mora da se u fazi prevodjenja zna kolika je duzina tog niza. Ovako se ne zna.

Kad imas red[n] , ispisujes
red[0],red[1]......,red[n-1]
To je n brojeva ili sta si vec definisao.
U tom slucaju red[n] moze biti bilo sta sto se u tom trenutku nalazi u memoriji posle n-1 mesta(moze da se desi da ostane tu neki broj, ali najcesce nije tako)



offline
  • Pridružio: 10 Mar 2009
  • Poruke: 101
  • Gde živiš: Podgorica

mislim da me nisi bas najvolje shvatio xD




Na to sam mislio.. Inace mene program radi sve ok kad je i=n-1
Posto ako imam red[3] = {2, 4, 6}
red[0] ima vrijednost 2
red[1] ima vrijednost 4
red[2] ima vrijednost 6
a red[3] nema vrijednost jer su obuhvaceni 0 1 2 to jest 3 predstavlja 3 (BIT??) mjesta

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

red[3] ima vrednost onoga sta se trenutno nalazi u memoriji na poziciji(u ovom slucaju) red[0] + sizeof_integer * 3
Odnosno, red[3] ima u memoriji 3 uzastopna mesta velicine size_of_integer , najcesce 4 bajta, ti kad prakticno pristupas prva 4 bajta, druga 4, treca 4 i kad hoces sledeci(koji ne postoji) on ti cita naredna 4 bajta u memoriji sta god se u njima nalazilo....

Ko je trenutno na forumu
 

Ukupno su 1531 korisnika na forumu :: 77 registrovanih, 7 sakrivenih i 1447 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: -[CoA]-, Ageofloneliness, airsuba, ajo baba, amaterSRB, Apok, Aquarius73, avijacija, baltazar01, Bobrock1, boxbole, BraneS, bufanje, Buzdovan, cezar67, DJUNTA, djuradj, draganl, dragoljub11987, gasazem, goran.vvv, Haris, HogarStrashni, isioux, istina, jodzula, Joint Chief, Jovan.D, kaisarevic1, Kenanjoz, kikisp, kinez88, koom0001, Kubovac, kunktator, Lazarus, Litostroton, lucko1, M74AB3, mane123, Marko00, mat, maxim_von_burdengate, MB120mm, Mercury, Metanoja, mgolub, milenko crazy north, MilosKop, Mitch22, Mrav Obrad, Ne doznajem se u oružje, Neuromancer, nextyamb, Nmr, ObelixSRB, PrincipL, Profesor_018, RJ, RS28, saputnik plavetnila, sarma, sekretar, septembar, Srbin do koske, theNedjeljko, trpche, uruk, Velizar Laro, Vrač, Vzor50, wizzardone, Zec, Zmaj Tolak, zoran77, Zukov, šumar bk2