Hogyan állítsam elő a játékban eltelt időt?
ANSI C nyelven írok játékot.
Már kész van az egész, de képesnek kell lennie a játék közben eltelt percek számát kiírni, miután vége a játéknak.
Tudom, hogy a time.h fejfájlt be kell kapcsolni, és hogy a time(time_t *pt) függvényt kell használni, ami long típusban adja vissza az 1970 óta eltelt másodperceket, ezzel meg is tudnám oldani a dolgot.
Úgy tudom, hogy ha nem NULL pointert írok a függvény paraméteréhez, akkor annak a pointernek átadja a visszaadott érték címét.
Meg is csináltam ezt a time_t típusú pointert, meghívtam vele a függvényt, majd a futás kezdetekor közli, hogy pointer nincs inicializálva.
Folyamatosan kaptam efféle, figyelmetlenségből adódó hibaüzenetet, de egy pillanat alatt megtaláltam a hibát és ki is tudtam javítani.
Most viszont ötletem sincs, hogyan kellene megoldani ezt a problémát, kérlek, segítsetek.
Előre is köszi
1. Miért akarsz neki átadni nem 0 paramétert? Ugyanazt írja bele, mint amit visszaad.
2. Csak úgy létrehoztál egy pointert, és átadtad? Neki nincs hatalma azt a pointert átírni, csak az általa mutatott területet. Akkor tudná a pointert módosítani, ha **-ot venne át, azaz a pointerre mutató pointert.
Tehát ha te ezt írod:
time_t* ptr;
time(ptr);
és a time így néz ki
time_t time(time_t* ptr)
{
time_t result = /* előállítjuk a resultot */;
if (ptr) *ptr = result;
return result;
}
Na most ha te átadsz neki egy inicializálatlan pointert, ez jobb esetben azonnali crasht fog okozni.
Azért nem teszem változóba a függvény visszatérési értékét, mert képtelen belerakni adatvesztés nélkül.
time_t típusból konvertál longba.
Legalábbis a VS ezt írja.
Köszi
A time_t szimpla typedef:
time_t time = 0;
long long a = time;
__int64 b = time; (__int64 ez külön a VS -ben lévő típus)
Sikerült már megoldani, de új probléma merült fel.
Ugye az eltelt időt úgy számolom ki, hogy az elején bekérem egy változóba, majd a végén is, végül a kettőt kivonom egymásból.
Rendre 0 és 3 közötti eredmények jönnek ki, akkor is, ha két percig játszom.
"képtelen belerakni adatvesztés nélkül"
Hozz létre egy változót time_t típussal és rakd bele. Miért lenne itt adatvesztés? Add át a változó pointerét paraméterként vagy rendeld hozzá simán a visszatérési értékét tökmindegy melyik. Ha adatvesztésed van rossz típust használsz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!