C++ Masyvu vidurkis

Jeigu programuojate ir norite ko nors paklausti ar pasidalinti patirtimi, darykite tai čia...
User avatar
evil
Posts: 840
Joined: 2009-07-28 22:16
Location: Kaunas
Contact:

2010-11-30 21:13

šiuo atveju nesiskiria, bet jei 'n' kompiliavimo metu bus nežinomas - nesusikompiliuos, kiek pamenu. Reikia eit per pointerius kaip rkr ir rašė.

User avatar
Nemesiz
Posts: 335
Joined: 2008-10-14 14:13
Location: Kaunas/Siauliai
Contact:

2010-11-30 21:33

Na tai tuomet geriau preis tai apsirasai kad n yra 10, o veliau nuskaitat is konsole jo reiksme pakeiti.

User avatar
evil
Posts: 840
Joined: 2009-07-28 22:16
Location: Kaunas
Contact:

2010-11-30 21:42

nepakeisi. Tam kintamajam išskirta tiek vietos atmintyje ir nedaugiau bus. Jei nori dinaminio kintamojo, turi jį sukurti kodo vykdymo eigoje, tam ir yra pointeriai.

User avatar
Nemesiz
Posts: 335
Joined: 2008-10-14 14:13
Location: Kaunas/Siauliai
Contact:

2010-12-01 08:27

int n - nera dinaminis. Tiesiog pradzioje jam nurodome int reiksme 10, o veliau per konsole pakeiciame, ir tik po to sukuriame masyva A ir B

User avatar
evil
Posts: 840
Joined: 2009-07-28 22:16
Location: Kaunas
Contact:

2010-12-01 08:52

Manau, kad nepakeisi - tik tau atrodo, kad jis dinaminis. Tokių bajerių nebandžiau bet realiai kompiliatorius turėtų iškart nuspręsti kad n=10 ir visąlaik tiek bus. Sukurti dinamiškai reiškia naudoti sintaksę A = new int[n];

User avatar
Nemesiz
Posts: 335
Joined: 2008-10-14 14:13
Location: Kaunas/Siauliai
Contact:

2010-12-01 10:57

Na as senai su C++ bedirbes, bet cia man kazkas nelogisko kalbama.

Pradzioje mes nurodome int n = 10. Tai jis turi reiksme 10 (skaiciu) veliau mes ji pakeiciame i nurodyta is konsoles pvz 20 ir reiksme n keiciasi. Cia juk ne koks apsaugotas kintamasis.

O turint n aprasome kad A yra masyvas. Ir veliau mes su new galime isskirti jam vietos

User avatar
rKr
Posts: 1150
Joined: 2004-12-28 17:05
Location: Raudondvaris-Vilnius
Contact:

2010-12-01 14:15

Kiek pamenu isvis net nekompiliuos tokios programos:

int n=10;
int A[n];

nes A[kintamasis] jam jau bus kintamo dydzio (dinaminis) masyvas.

Nesunku juk patikrinti- susikompiliuoji ir paziuri :)

User avatar
evil
Posts: 840
Joined: 2009-07-28 22:16
Location: Kaunas
Contact:

2010-12-01 14:23

turiu po ranka tik VIsual Studio, tai pabandžius int n=10; int A[n]; gaunamas pranešimas:
Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)

Kitaip tariant neglai būti kintamasis, be pointerių niekaip. Manau ant C++ bus tas pats.

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 2 guests