Posted By: snake (keeping on the sunny side) on 'CZdatabases' Title: Re: Strange things happen - ECPG na Postgresu 6.5.2 Date: Thu Jan 27 01:27:58 2000 Ahoj lidi, Pajasofte zvlast! No ja si fakt nemyslim, ze by to bylo nejakym nepochopenim Ccka (ne ze bych ho chapal, to rozhodne ne, ale hned vylozim, proci s to myslim): 1) preprocesor preklada priklad s promennou definovanou uvnitr i vne {} naprosto stejne. Do stejne funkce 2) kompilator zkompiluje vec bez problemu, bez hlaseni chyb a bez hlaseni warningu. Pritom rozdil je opravdu akorat v tom, ze jednou je promenna definovana uvnitr a jednou vne {}. Na nazvu promenne je to nezavisle. 3) pokud jsem zkousel priklad, kterej by pomoci printf zapisoval do ukazatele, kterej dostanu presne takovouhle definici - fungovalo to (naprosto bez problemu a presne tak, jak jsem ocekaval) 4) chyba nastava (system pada) kvuli tomu, ze funkce, do ktere to ECPG preklada - jednou ukazatel zmeni a podruhe ne. Zmeni ho ve chvili, kdy je promenna definovana vne {} a nezmeni ho (tj. chova se korektne), kdyz je to definovano uvnitr. OK, pokud je to teda moje chyba a nepouzivam spravne syntaxi - jak zni tedy ta spravna (abych nemusel vzdycky definovat "nahradni" promennou, ktera je mi naprosto nanic - a pak vysledek kopirovat) definice? snake P.S. (uspesne) vyreseni tohohle problemu jsem ochoten sponzorovat jednou cokoladou:-) > A je to tu, presne to, o cem pise M. Virius ve Strasti a propasti > jazyka > C++. Bohuzel i ja CASTO delam stejnou chybu a programy nekdy bezi, nekdy ne. > > V C, ani v C++ NENI PRAVDA, ze POLE a UKAZATELE JEDNO JSOU!!!! > NEJSOU!!!!!!!!! > > Ac se to clovek docte v mnoha knihach, neni to skutecne pravda a Virius > > na celkem srozumitelnych prikladech dokazuje (a spravne), ze je to skutecne > nepochopeni pointeru u mnoha a mnoha lidi, vcetne radoby tech, kteri tvrdi, > ze by C mohli dokonce vyucovat. > > Osobne se domnivam, ze presne zalezi na tom, co ECPG s tim ukazatelem, > potazmo (2. pripad) &char [0], nakonec dela, program muze fungovat a > nemusi... > > Dobry zpusob jak se podobny sracky odnaucit (a mne to nekdy pomuze) je > nedelat string = char *, ale predstavovat si to jako pole int... > > ..s usmevem a laskou jde vsechno lip, nezapominejte na to v zivote.. > > > PaJaSoft