Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#6362) jattila48 válasza jattila48 (#6350) üzenetére


jattila48
aktív tag

Hová lettek az ez utáni hozzászólások? Előbb még volt itt vagy 5.

„Kétségtelen, hogy nem tudjuk, mit tegyünk, de felkészültek és elszántak vagyunk.” - Olaf Scholz német kancellár

(#6363) dabadab válasza jattila48 (#6362) üzenetére


dabadab
titán

Gondolom járt erre egy moderátor.
Nem maradtál le semmiről :)

DRM is theft

(#6364) kispx válasza jattila48 (#6362) üzenetére


kispx
addikt

Valószínűleg valamelyik moderátor törölte. Bár a tartalmukat elnézve nem baj, úgy sem volt benne semmi érdekes, csak a már megkezdett flame.

(#6366) btraven


btraven
őstag

float f1 = 1.6f;

Ez hogy van fájlban kiírva? Milyen bájtok? Vagy teljesen implementáció függő?
Át szeretném hackelni egy játék fájljában egy kard erejét :)

(#6367) btraven válasza btraven (#6366) üzenetére


btraven
őstag

Közben meglett [link] :DD

(#6368) kovisoft válasza btraven (#6366) üzenetére


kovisoft
őstag

Tudod biztosan, hogy a játék float-ként tárolja? Lehet akár double-ként, esetleg 10-zel vagy 100-zal felszorzott integer-ként is tárolva, az semmit nem jelent, hogy hogyan van megjelenítve.

(#6369) btraven válasza kovisoft (#6368) üzenetére


btraven
őstag

Szerencsére float, és meg is találtam a fájlban. Átírtam és most kiirtok mindenkit. ;]

(#6370) buherton


buherton
őstag

Lenne egy számomra fogós kérdés.

Az alábbi kódrészletben miért biztos mindenki, hogy a pointer majd az inkrementált címre fog mutatni az értékadáskor az alábbi kódrészletben?

*p++ = 1;

Keresem az okot a miértre, de őszintén nem találom. Annyit sikerült kideríteni, hogy nem a precedencia az ok.

A C99 szabványban (alább a részletek) úgy értelmezem, hogy ténylegesen bármikor megtörténhet két sequence point között.


Ráadásul ez a leírás is csak ráerősít arra, hogy az order unspecified: [cpp reference - Order of evaluation]

Segítene valaki felhomályosítani ebben az ügyben?

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6371) sztanozs válasza buherton (#6370) üzenetére


sztanozs
veterán

[link]
Precedence:
1) ++ (postfix increment)
2) * (dereference)
3) = (assignment)

Order of ops (evaluation):
a = b (azaz balról jobbra)

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#6372) buherton válasza sztanozs (#6371) üzenetére


buherton
őstag

Köszi! A második link nem megy.

Ebben az esetben pedig verseny helyzet lesz?
int main() {
  static int num = 6;
  printf("%d ",num--);
  if(num)
    main();
  return 0;
}

Ezt lefuttatva 6 5 4 3 2 1-t ír ki, de nem lennék meglepve, ha máshol ugyanez 5-el kezdődne.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6373) kovisoft válasza buherton (#6372) üzenetére


kovisoft
őstag

Az általad korábban linkelt szövegrészben is ez van:

"The result of the postfix ++ operator is the value of the operand. After the result is obtained, the value of the operand is incremented."

Nyilván a -- operátorra ugyanez igaz. Azaz teljesen egyértelmű a dolog: először kiolvassa num értékét (ezt fogja átadni a printf-nek), és csak ezután fogja csökkenteni num-ot. Ezért először 6-ot fog kiírni.

[ Szerkesztve ]

(#6374) buherton válasza kovisoft (#6373) üzenetére


buherton
őstag

Úgy érzem, hogy ezt nem fogom megérteni soha. Évek óta nem nyúltam C kódhoz csak C++-hoz, de annak is már 2 éve. Bár ezekkel akkor sem voltam tisztában.

Ráadásul rettenetesen bosszant az, hogy több C kvízes oldalon vannak hibás feladványok. Az egyik típus hiba az volt, hogy a függvény int-t várt és rendbe ott volt az if, hogy csak 0-nál nagyobb számokkal foglalkozzon. Negálás sehol nem volt, vagyis negatív számokra nem működik jól a függvény. A másik típus hiba az, hogy a két sequence point között csak egyszer lehet az értéket módosítani. Illetve volt még olyan is, hogy singed negatív számot akart shiftelni, ami undefined.

struct player
{
char pname[20];
}pl;
char* play(struct player *temp_pl)
{
strcpy(temp_pl->pname, "kohli");
return temp_pl->pname;
}
int main()
{
strcpy(pl.pname, "dhoni");
printf("%s %s", pl.pname, play(&pl));
return 0;
}

Ez is egy kvíz, ahol nincs olyan opció, hogy undefined. Undefined-nak gondolom, mert a függvény paraméter kiértékelés sorrendje nincs leírva a szabványban.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6375) dabadab válasza buherton (#6374) üzenetére


dabadab
titán

A bemásolr példában mindegy a kiértékelés sorrendje, mert a play() nem változtatja meg a pl.plname-et (az nem egy pointer, hanem egy tömb)

DRM is theft

(#6376) buherton válasza dabadab (#6375) üzenetére


buherton
őstag

A play() nem strcpy-zi be a "kohli" stringet a pl.pname-be? Mármint végeredményben nem ugyanarra a memória területre fognak hivatkozni?

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6377) dabadab válasza buherton (#6376) üzenetére


dabadab
titán

A printf() a plname címét kapja meg, az meg nem változik. Ami változik, az a karaktertömb tartalma, de az meg csak a printf() függvénytörzsében lesz érdekes, de mire oda jut a végrehajtás, addigra már mindkét paraméter ki van értékelve.

DRM is theft

(#6378) buherton válasza dabadab (#6377) üzenetére


buherton
őstag

És tényleg. :DDD Köszi!

Egyre inkább tartok a szerdai interjútól... Ha ilyeneket fognak kérdezni, akkor aligha hiszem, hogy felvesznek senior pozícióba.

[ Szerkesztve ]

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6379) gregory91 válasza buherton (#6372) üzenetére


gregory91
senior tag

"de nem lennék meglepve, ha máshol ugyanez 5-el kezdődne"
Akkor akkor fordítsd meg a num-- >> --num-ra.

Remélem itt elfér - https://sites.google.com/site/geriprojekt/ - https://github.com/kgregoryan - Az ember téved,a gép hibázik.

(#6380) sh4d0w


sh4d0w
nagyúr
LOGOUT blog (1)

Elkezdtem belekontárkodni a C nyelv tanulásába és van valami, amit nem értek a bitwise complementer operatornál:

int a = 10; /* 10 = 1010 */
int c = 0;
c = ~(a);
printf(c);

Output:
-11

Namost, ha jól értem, a fenti operator a biteket flippeli, vagyis a 0-ból 1, az 1-ből 0 lesz, azaz a fenti 10-es decimális értékből nem -11-nek kellene lennie, hanem 5-nek. Ebből számomra az következik, hogy van itt még valami, amiről nem tudok.

Mi az, hogy jön ki a -11? Forrás

[ Szerkesztve ]

https://www.coreinfinity.tech

(#6381) axioma válasza sh4d0w (#6380) üzenetére


axioma
veterán

A nem lathato nullakat is flip-eli, es a legelso 1-es az kettes komplemens abrazolas negativ jele. Kicsit nezz korul a valtozo merete es negativ szamokok abrazolasa temakorben.

[ Szerkesztve ]

(#6382) kispx válasza sh4d0w (#6380) üzenetére


kispx
addikt

A 10 "nemcsak" 1010, hanem 00000000 00000000 00000000 00001010 (amennyiben az int 4 bájton tárolódik)
A bitwise az összes bitet negálja: 11111111 11111111 11111111 11110101
Ami a negatív számok ábrázolása miatt (kettes komplemens), miatt -11

(#6383) sh4d0w


sh4d0w
nagyúr
LOGOUT blog (1)

Köszönöm a válaszokat, így már világos.

https://www.coreinfinity.tech

(#6384) alapz@j


alapz@j
tag

Egy érdekes cikk azoknak, akik nem ragadtak bele harminc évvel ezelőtt az ANSI C-be ;]
[link]
(és a C23 várható fícsörei: [link] )

[ Szerkesztve ]

(#6385) btraven


btraven
őstag

Van Dos-os EXE fájlom. Vissza lehet szedni belőle a C programkódot?
Addig sejtem hogy disassembler-rel assembly-t lehet csinálni. De azzal nem vagyok kisegítve.

(#6386) buherton válasza btraven (#6385) üzenetére


buherton
őstag

Mi a cél?

Értelmes kódot nem fogsz visszakapni, maximum a hablagyot olvashatod C syntaxszal.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6387) btraven válasza buherton (#6386) üzenetére


btraven
őstag

Játékban dungeon helyek a térképen 4 byte-on vannak leírva/tárolva. És nem tudok rájönni a logikájára. Gondoltam megnézném a forráskódot.

(#6388) sztanozs válasza btraven (#6387) üzenetére


sztanozs
veterán

Nagyon regi jateknak kell legyen, ha a terkep is bele vamn forditva az exe-be...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#6389) btraven válasza sztanozs (#6388) üzenetére


btraven
őstag

A térkép külön adatfájlban van. A térképeket sikerült is kirajzolnom programmal, csak a rajta levő speciális helyeket nem. Mint üzenetek, teleportok, fel/lejárat stb. Pedig az is fontos lett volna.
De mindegy is mert a játék közben olyan bugos lett hogy elfogyott a türelmem és feladtam.

(#6390) dabadab válasza btraven (#6389) üzenetére


dabadab
titán

Csak így kíváncsiságból: melyik játék ez?

DRM is theft

(#6391) btraven válasza dabadab (#6390) üzenetére


btraven
őstag

[link] Dragon Sword (nagy rajongója vagyok a Wizardry játékoknak) ez is jó volt addig amíg találtam hozzá térképeket a neten. De hogy én rajzolgassam, az inkább munka. :)

[ Szerkesztve ]

(#6392) cog777


cog777
senior tag

Mint c++ fejleszto, lenne par kerdesem c-vel kapcsolatban. Eleg regen foglalkoztam c-vel, most kaptam par feladatot, kapasbol a c++-os mintak jutottak eszembe, de aztan felvetodott bennem, hogyan oldanam meg a feladataimat c-ben?

Egyik feladat igenyli a dependency injection-t, amikor egy kliens kod hasznalni akar valamilyen implementaciot, pl driver-t.
Ekkor c++-ban csinalok egy interface osztalyt, majd abbol orokoltetem. Az interface osztalyon keresztul at lehet adni a driverA-t es a driverB-t is. Helyzettol fuggoen.

Na most, c-ben ezt hogy lehetne megoldani?
Alap esetben csinalnek egy csomo fuggvenyt ami a driver-t elinditja, es ezek a fuggvenyek ertelemszeruen elerhetok lennenek. De ilyenkor nem tudom barmikor kicserelni a driver funkcioit a kliensben hacsak at nem irom...

Esetleg atadok egy strukturat, amiben fuggvenyre mutato pointerek vannak es azt meg a kliens inicializalasa elott feltoltom annak megfeleloen hogy vagy a driverA, vagy driverB-nek a funkcioit akarom hasznalni a kliensben?

Remelem ertheto a problemam... szoval mi lehet a "dependency injection" c-ben?

HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian

(#6393) dabadab válasza cog777 (#6392) üzenetére


dabadab
titán

Én a magam részéről a struktúrás függvénypointeres megoldást csinálnám (csináltam).
Ami nagyobb C projekteket láttam, ott is ez köszönt vissza, kicsit úgy nézetek ki, mintha egy régi g++ kimenetét láttam volna, ami még a C++ kódból C-t generált és a függvények első paramétere tulajdonképpen a this volt.

DRM is theft

(#6394) cog777 válasza dabadab (#6393) üzenetére


cog777
senior tag

koszi, szoval jo uton jarok.

HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian

(#6395) buherton válasza dabadab (#6393) üzenetére


buherton
őstag

Van más értelmes alternatíva erre? Szerintem nincs. :)

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#6396) cog777 válasza buherton (#6395) üzenetére


cog777
senior tag

Igy gyakorlatilag unit test szerusegeket is tudok irni, nem? helyettesitem a fuggosegeket mock-al...

HP ZBook Workstation A3000 - Linux Mint; Raspberry Pi4 - Raspbian

(#6397) buherton válasza cog777 (#6396) üzenetére


buherton
őstag

Igen, de az elég macera.

Ezt szerettem volna kipróbálni: [cmock], de még nem volt időm.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.