- Apple iPhone 17 - alap
- Apple iPhone 17 Pro Max – fennsík
- Google Pixel topik
- Huawei Watch Fit 3 - zöldalma
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Samsung Galaxy Fit 3 - keveset, de jól
- Honor 200 Pro - mobilportré
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy S25 - végre van kicsi!
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
Új hozzászólás Aktív témák
-
VaZso
senior tag
válasz
Jester01 #1601 üzenetére
Értem, ill. jól gondoltam...
Azért nem tudom előre a hosszát, mert egy fileból olvasom ki az értékeket.Annak sem lenne sok értelme, ha globális szinten tárolnám egy változóba, mert listák közül is lehet akármennyi.
Ez lett belőle:
int ptLen(char **data) {
if (!data)
return 0;
int i=0;
while (data[++i])
;
return i-1;
} -
VaZso
senior tag
válasz
Jester01 #1595 üzenetére
Köszi, úgy tűnik, valahogy a deklarációm nem fért össze azzal, amit csinálni akartam...
Így nézett ki: char *data[cnt];
Ugye jól sejtem, hogy a tömb elemszámának "lekérdezésére" nem igazán van jobb módszerem, mint az n+1. elemet NULL-ra állítani és erre vizsgálni?
Köszi mégegyszer, most jónak tűnik a függvényem működése.
-
VaZso
senior tag
Lehet, hogy rosszul fogom meg a dolgot, de a következő problémám támadt:
Van egy **Getlist nevezetű függvényem, ami feladata egy szövegfileból összeszedni a vesszővel elválasztott adatokat és arra beállítani a pointertömb elemeit...
Tehát egy lefoglalt memóriaterületen rendelkezésemre állnak az értékek.
A lista elemeinek pointerét a megfelelő pozícióra állítom, ill. a vesszők helyét '\0'-lal lezárom.Elviekben minden ok, de nem tudom, hogy allokáljak memóriát a pointertömbnek.
...vagyis erre gondoltam, de ez nagy hülyeségnek tűnik /mondjuk ez egy makrót hív, de elvileg ez lényegtelen/:MALLOC (*data, sizeof(char *) * cnt);
Tehát van egy *data[cnt] nagyságű pointertömböm, ennek szeretném lefoglalni a tömb egyes mutatói címének letárolásához szükséges memóriaterületet.
Hogy kéne ezt csinálnom? -
VaZso
senior tag
-
VaZso
senior tag
válasz
skoda12 #1493 üzenetére
Upsz... még mindig nem vagyok "képben"...
Itt kicsit más értékek vannak, mint amit a gépemen tapasztaltam.
Vélhetően azért, mert ez x64-es rendszer.Mégjobban elbizonytalanodtam, hogy az egyes változóknál milyen tartományt kéne figyelnem, hogy ne csorduljon túl...
Eszerint 32-bites rendszeren a short és az int is 2 byte-os és a long 4 byte-os?
Float működése ill. határai még mindig nem tiszta...
-
VaZso
senior tag
Sziasztok!
Kicsit megkavarodtam... Feladatom, hogy egy config fileból beolvassak különféle változókat.
Kicsit elveszettnek érzem magam abban, hogy milyen változótípus milyen tartományokban működik és akkor még fel sem merült, hogy esetleg más architektúrán mi a különbség...
Tehát:
short: 2 byte-on tárol --> 2^16-1, ill. ha az első bit az előjelbit, akkor -32768 - 32767-ig terjed.
int: 4 byte-os --> 2^32-1 ...
long: 8 byte-os --> 2^64-1 ...
float?
double?
Hogy kezeljem? Mik a határai?
Nem igazán találtam értelmes adatot.Sima C-vel próbálkozom.
-
VaZso
senior tag
Köszönöm a választ.
Tehát ha jól értem, balról jobbra haladva értékeli ki a feltételek igazságtartalmát és ha valahol egyértelműsödik a helyzet, dönt a végrehajtásról...Ezesetben érdekes lehet még, hogy ha vagy kapcsolat van közöttük és az első feltétel teljesül, akkor pl. a második feltételben lévő x++ nem lépteti el a pointert...
...mondjuk ez alapján pedig már rég letesztelhettem volna hülyeségek kérdezése helyett...
-
VaZso
senior tag
Sziasztok!
Egy rövid kérdéssel szeretnék zavarni...
if-nél, ha pl. több feltétel és kapcsolatát adom meg és az első feltételnél elbukik a dolog, akkor ugye nem nézi meg a második feltételt is?
Erre gondolok pl.:
if ((c==*pattern) && (strDif(str, pattern, patlen)==-1)) ...
Fölösleges az strDif függvényt meghívnom, ha a másik feltétel úgysem teljesült...
Jól gondolom, hogy ez esetben nem hívja meg? -
VaZso
senior tag
válasz
Jester01 #1250 üzenetére
Eszerint ott lehet a kutya elásva, hogy nem módosítható?
*ptr = 'n'; (ill. str) hatására Segmentation fault-ot kapok...Egy ilyenem van:
char *strCapitalize(char *str) {Tehát a paraméterként kapott *str-t hiába is próbálom megváltoztatni...
Hogyan tudnám mégis valamely characterét megváltoztatni úgy, hogy nem tudom előre a string hosszát és csak ezért nem nyálazhatom végig?
-
VaZso
senior tag
Sziasztok!
Eddig nem programoztam C-ben. Van néhány rutin, amit meg kellene írnom, de kicsit elakadtam, ahogy sorjában haladtam velük... A kérdésem amatőrsége ebből fakadóan adott...
Maga a rutin nem tűnik bonyolultnak - egy kapott string első character-ét kell kapitalizálni.
A string, ill. visszatérési érték pointeren kersztül kerül átadásra.Amin elakadtam: a pointer aktuális helyzetén lévő adatot hogy tudom megváltoztatni?
pl. adott egy char *ptr nevű pointer, ami az "alma" szóra mutat.
Szeretném kicserélni mondjuk az m betűt n-re. A pointer az m fölé mutat. Hogy adom meg neki az n értéket úgy, hogy a többi characterhez nem nyúlok?Rosszul állok a feladathoz?
Ú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!
- HP Pavilion Plus 14-ey0155ng Ryzen 5-7540 / 16GB / 512GB FHD+
- Szuper áron eladó 2az1-ben HP Pavilion x360 /14" i5-1335U, 16GB ram, 512 GB SSD, FHD, IPS,
- Lenovo IdeaPad Slim 5 16IAH8 16 col 12.gen i5 / 16GB / 1TB új 1 napot ment eddig összesen.
- Acer Aspire 5 A517-58GM-78AT i7 / 32GB RAM / 1TB SSD / RTX 2050 17,3
- Remek áron eladó dobozos új ACER NITRO V15 /R7-7735HS/16GB 1000 GB SSD NVIDIA RTX 4060 8 GB 144Hz
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3527, 94% Akkumulátor
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3499
- Lenovo ThinkPad P14s Gen 1 i7-10510U 32GB 512GB Nvidia Quadro P520 14" FHD Gar.: 1 év
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 10 Pro 128GB // Számla+Garancia //
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest