Ú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!
- Filmvilág
- Sony MILC fényképezőgépcsalád
- One otthoni szolgáltatások (TV, internet, telefon)
- TCL LCD és LED TV-k
- Hamarosan érkezik az Atomic Heart utolsó DLC-je
- Azonnali informatikai kérdések órája
- Házimozi haladó szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- HP EliteBook / ZBook topik
- További aktív témák...
- iPhone 16e 128GB One/Voda "ÚJ" 2026.05.18. Apple jótállás
- Thinkpad T16 Gen2 27% 16" FHD+ IPS i5-1335U 16GB 512GB NVMe gar
- iPhone 15 256GB One/Voda megkímélt kiváló akku
- HP ProBook 445 G7 AMD RYZEN 5 Pro 4500U/8GB/256 SSD/14 " FHD laptop garanciával
- 4ÉV GAR!! Lenovo X1 Carbon 11th Gen OLED KIJ. i7-1365U 16GB/512GB Intel Iris Xe Graph Magyar v.bill
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- Surface Pro 7+ i5-1135G7 16G 256GB 1 év garancia
- BESZÁMÍTÁS! ASUS ROG STRIX B460 i7 10700 16GB DDR4 1TB SSD RTX 5060 8GB NZXT S340 fehér CM 600W
- Vállalom FRP Lock os telefonok javítását ingyen kiszálással és akár helyszíni javittással
- Dell Latitude 5420 14" Touchscreen i5-1135G7 16GB 512GB 1 év garancia
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest




