Új hozzászólás Aktív témák
-
-
sghc_toma
senior tag
az okozza, hogy nincsenek fent az adott gepen a te forditodnak megfelelo runtime library-k.. ket lehetoseged van:
- feltelepititek a runtime-ot (vcredist.exe neven valahol ott van a Visual Studio konyvtaraban, vagy MS-tol is le lehet tolteni)
- statikusan linkeled a runtime-ot az exe-dhez (Project Properties | C/C++ | Code Generation | Runtime Library, es itt /MD helyett /MT) -
-
sghc_toma
senior tag
válasz
-=Lord Tom=-
#1185
üzenetére
az elozo beolvasas utan ottmarad az stdin-en egy '\n', es ezt olvassa be a masodik scanf.. csinalhatod azt, hogy olvasas elott kiurited az stdin-t mondjuk igy:
char c; while ((c = getc(stdin)) != EOF && c != '\n');
ja, es az osszehasonlitasnal ne "-t hasznalj, hanem '-t.. a "+" igazabol ket karakter, a vegen van egy '\0'..
-
sghc_toma
senior tag
válasz
skoda12
#1176
üzenetére
nem szukseges beallitani, ha .c a kiterjesztes, automatikusan C-kent fordit..
amugy a project Properties|C/C++|Advanced|Compile As helyen lehet beallitani az egesz project-re (ezt felulirja a kiterjesztes).. adott file-ra is be lehet allitani, ekkor ertelemszeruen a file Properties lapjan kell beallitani, nem a project-en.. -
sghc_toma
senior tag
kampi_ (#1074): bocs, hogy nem valaszoltam, nyaraltam, es a Vodafone-os mobilnettel nem jottek be az oldalon a hsz-ek..
Jester01 (#1088): az OpenProcess doksijaban le van irva, hogy NULL-t ad vissza hiba eseten, szoval ebben nincs semmi meglepo.. ami meglepo lehetne, hogy rossz handle-t jelezhet NULL es IVALID_HANDLE_VALUE is (fuggevnye valogatja), de ezen meg azert nem lepodunk meg, mert tudjuk, mennyire konzisztens a Win32 API
amugy azert letezik az IVALID_HANDLE_VALUE, mert egy par Win32 fv 16 bites elode -1-gyel tert vissza, es meg kellett orizni a kompatibilitast.. -
sghc_toma
senior tag
Udv!
CreateProcess-rol gondolom, hogy Win32 API-val dolgozol.. ha esetleg megsem, es mashol is van CreateProcess, akkor a hsz-em tobbi resze ignoralando
a CreateProcess az utolso parametereben egy PROCESS_INFORMATION-re mutato pointert ker, es ebben a strukturaban tobbek kozott visszaadja a process id-t.. egy ciklusban megprobalhatsz HANDLE-t kerni a process-hez az id alapjan az OpenProcess fv-el.. ha a HANDLE == NULL, akkor mar nem fut a processz.. (nemi kis sleep-et rakjal a ciklusba, kulonban felzabalja a procit) -
sghc_toma
senior tag
válasz
Elektromann
#1066
üzenetére
Win32 alkalmazasnal alapbol az INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT) a belepesi pont.. ilyened nem volt, ezert a linker nem is talalta..
-
sghc_toma
senior tag
en is igy latom.. Basic-kel, Pascal-lal kezdtem, es nagyon sokaig tartott, mire felnyilt a szemem, es megtanultam igazan hasznalni a C++ adta lehetosegeket..
gygabor88: Thinking In C++-t ezert szeretem nagyon; alaposan bemutatja a nyelvet, es mindezt jo peldaprogikon keresztul teszi..
-
sghc_toma
senior tag
válasz
skoda12
#1022
üzenetére
maganvelemeny kovetkezik, nem megkovezni erte

annyira nagyon nem ismerem a Stroustroup konyvet (referencianak hasznaltam parszor), de szerintem teljesen kezdonek nem a legmegfelelobb.. tul sok infot tartalmaz elsore.. szerintem sokkal jobban lehet tanulni egy olyan konyvbol, ami kisebb problemak megoldasan keresztul nyujt betekintest a nyelvbe.. amikor meg mar van egy ralatasod a dolgokra (es erdekel is a dolog), ugyis utananezel az apro finomsagoknak..azzal az altalanosan elfogadott nezettel sem ertek egyet, hogy eloszor C, aztan C++.. nem irom le, hogy miert, mert Bartosz Milewski nagyon jol leirja a C++ In Action cimu konyveben, es maximalisan egyetertek vele..
Meg egy konyv van, amit tudok ajanlani C++-hoz: Thinking In C++..
-
sghc_toma
senior tag
Kösz, szóval ha kiértékeli az egyik egyenlőség jelet, akkor már nem foglalkozik a másikkal? (erre nem gondoltam)
nem erről van szó.. kiértékeli azt a kifejezést, hogy 9999 <= szam.. ez vagy igaz, vagy nem.. utána ezt az értéket (igaz, vagy hamis) hasonlítja össze 100000-rel.. a hamis 0, az igaz 1, mindkettő kisebb százezernél -> mindig igaz lesz a feltétel..btw, ha a számod egyenlő 9999-cel, akkor csak négyjegyű.. illetve a 100001 is ötjegyű.. szóval a feltétel helyesen: x > 9999 && x < 1000000
// ehh, elkéstem...
-
sghc_toma
senior tag
válasz
Benmartin
#546
üzenetére
Szia!
Igazad van, beadandóimban én sem mindig csinálok teljes input-validációt, mert minek. Viszont ez tudatos. Azért említettem meg a dolgot, mert ha a kezdő programozóba belerögzül, hogy gets, és nem ismeri annak veszélyeit, akkor simán elképzelhető, hogy production code-ban is használni fogja.
-
sghc_toma
senior tag
válasz
Fire/SOUL/CD
#544
üzenetére
Hello!
Semmi gond, én is találkoztam már beszólogató emberkékkel

Tény, hogy lehet szívni az stdin-nel, amíg az ember nem tudja, hogyan is működik az a fránya input buffer. Az a baj, hogy a gets-el akkor is szívhatsz, ha tisztában vagy a dolgok működésével - ugyanis semmilyen lehetőséged nincs biztosan elkerülni a túlcsordulást.
Azzal érvelsz, hogy a programozást oktató tanárok ezt nem tanítják. Ellopom az érvedet, és felhasználom
A tanárok pl. a gets veszélyeire sem hívják fel a figyelmet.Azért nem tartom jó ötletnek a gets használatát példakódban, mert akkor a programozópalánta azt ismeri meg, azt fogja használni, pedig van biztonságos(abb) megoldás is. Persze ahhoz többet kell tanulnia, meg pötyögnie, de potenciális b0f-t nem szabad benthagyni egy programban. Szerintem.
-
sghc_toma
senior tag
válasz
Fire/SOUL/CD
#541
üzenetére
hello!
ahogy dabadab mondja, egy túl hosszú input csinálhat gonosz dolgokat.. próbáld ki mondjuk 300-400 számjeggyel, úgy tuti felülírod a return address-t a stack-en valami hülyeséggel, és kapsz egy segfault-ot.. persze a mai fordítókban vannak mindenféle védelmek overflow-k ellen, de azért nem szabad csak azokra támaszkodni..
-
sghc_toma
senior tag
válasz
Fire/SOUL/CD
#539
üzenetére
egy tanács: a gets függvényt érdemes elásni.. jó mélyre.. olyan gyönyörű buffer overflow-t lehet vele gyártni, hogy ihaj.. ott van helyette pl. az fgets: harmadik paraméter stdin, és ugyanazt csinálja, mint a gets, csak kultúráltabban..
-
sghc_toma
senior tag
válasz
Bettina87
#396
üzenetére
azt várja, hogy az eredeti (értsd: első kiadású) KR könyvben leírtak alapján írjátok meg a házit.. a bekopizott válaszlevele alapján KR-féle kódokat írtatok órán is.. gyakorlatilag visszakéri, amit tanultatok..
félreértés ne essék: nem értem miért kell egyáltalán tanítani a KR C-t.. nekem kellett Fortran-t tanulnom, utáltam, és tudtam, hogy gyakorlatilag semmi hasznát nem veszem majd.. ennek ellenére az órai anyag alapján mindig megírtam a házit..
nem hinném, hogy embertelen feladat lenne egy problémát KR C-ben megírni, csak ehhez ugye ismerni kéne a nyelvet.. márpedig azt Nektek megtanították, vagy mi... -
sghc_toma
senior tag
OK, kösz mindkettőtöknek.
-
sghc_toma
senior tag
számunkra fura dolgot találtunk tegnap programozás közben.. a kódban maradt egy olyan sor, hogy zárójelben egy pár érték, valahogy így: (4, "sdfg", 23).. A kód lefordult, a progi működött.. megnéztem objdump-pal ennek a két forrásnak megfelelő progit:
int main() {(1,2,3,4); printf("qwer"); return 0;}
, illetve
int main() {printf("qwer"); return 0;}
semmi különbség nincs az assembly kódok közt...
a kérdésem: ez mitől "érvényes" kód c-ben, c++-ban?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen billentyűzetet vegyek?
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Anglia - élmények, tapasztalatok
- Autós topik látogatók beszélgetős, offolós topikja
- Kegyvesztett lehet a Radeon termékskála középső tagja
- Xbox Series X|S
- Igazi csúcskészülék lett a Poco F7 Ultra
- További aktív témák...
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, W11, Számla, 1 év garanci
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, Új akku, W11, Számla, 1 é
- Eladó Konfig I7 13700K 32GB DDR5 1TB SSD RX6800XT 16GB!
- Erős gamer / workstation PC RTX 5070 Ti, 64GB RAM, Ryzen 9
- Dell Latitude 7340 2-in-1 i5 13.gen, 16GB DDR5, 512GB SSD, QHD+ érintőkijelző, ÚJ ÁLLAPOT!
- Lenovo Thunderbolt 3 kábel (4X90U90617)
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Space Black - 1 ÉV GARANCIA -Kártyafüggetlen, MS4332
- Bomba ár! Lenovo ThinkPad X260 - i5-6G I 8GB I 256SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
- Intel XMP és AMD Expo Compatible! Corsair Vengeance RGB DDR5 2x32GB (64GB) Kit!
- Lian Li LCD-s 360mm-es vízhűtés akciós áron eladó!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs




