Új hozzászólás Aktív témák
-
válasz
aviator
#5584
üzenetére
"Azért lett pointer a tömb típusa mert később a koordináták címeire lesz szükség."
Ez a hiba. Ha szükség van a koordináták címeire, akkor veszed a címüket a & operátorral

Azzal, hogy az a tömb koordinata* típusú, azt mondtad, hogy ez egy pointert tartalmaz egy koordinata structra - és ez ezt is jelenti. Amikor létrehozod a haromszoget, akkor az létrejön, lesz benne három pointer, amik nem mutatnak sehova (pontosabba valami tök véletlenszerű helyre mutatnak), persze, hogy úgy elszáll a program.
Kénytelen leszel feltölteni ezeket a pointereket kézzel, pl. úgy, hogy foglalsz három koordinata structot, aztán azoknak a pointereit berakod (és amikor nem kellenek, akkor majd nyomsz rájuk egy free-t is). Ez remek dolog, ha valamiért te szeretnéd foglalni ezeket vagy más helyen lefoglalt structok pointerét akarnád felhasználni, viszont úgy tűnik, hogy egyáltalán nem ezt akarod, hanem azt, hogy a fordító hozzon létre neked három koordinata structot, meg aztán majd szabadítsa is fel a megfelelő időben.Szóval ez kell neked:
typedef struct haromszog
{
koordinata csucsok[3];
}haromszog;
haromszog triangle;
scanf("%d %d %d", &(triangle->csucsok[0].x),&(triangle->csucsok[0].y),&(triangle->csucsok[0].z)); -
Jester01
veterán
válasz
aviator
#5570
üzenetére
Ez meg a híres tömb-pointer ekvivalencia. C-ben a tömb automatikusan konvertálódik az első elemére mutató pointerré:
Except when it is the operand of the sizeof operator or the unary & operator, or is a string literal used to initialize an array, an expression that has type "array of type" is converted to an expression with type "pointer to type" that points to the initial element of the array object and is not an lvalue.
-
aviator
tag
válasz
aviator
#5569
üzenetére
char szoveg[101];
char*szpt;
scanf("%s",szoveg);
szpt=(char*)malloc(sizeof(char)*((strlen(szoveg))+1));
strcpy(szpt,szoveg);
printf("%s",szpt);
free(szpt);Újabb hasonló probléma. A strcpy itt elméletileg egy char típusú tömböt másol egy char* típusú tömbbe, ami nem lenne lehetséges. Sejtem, hogy az előző "indexelés megeszi a pointert" dolognak lesz itt is jelentősége, gondolom itt az indexelés a string-ben áll annak ellenére, hogy nem látszik az indexelő [] operátor. Kiíratáskor pedig látszólag string-ként íródik ki a pointer típus.
Amit nem értek az az, hogy a strcpy két paramétere hogy lesz azonos típusú, melyiknek változik meg a típusa (ha egyáltalán megváltozik) és miért, illetve, hogy a kiíratáskor hogy lesz a pointerből kiíratható string. -
Ú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!
- PlayStation 5
- Anglia - élmények, tapasztalatok
- Arena Breakout: Infinite
- Eredeti játékok OFF topik
- Mesterséges intelligencia topik
- Az eddigi legolcsóbb, 3D V-Cache-t használó CPU-ját hozta forgalomba az AMD
- Samsung kuponkunyeráló
- Vezeték nélküli fülhallgatók
- Milyen billentyűzetet vegyek?
- AMD APU (AM4 és AM5) topik
- További aktív témák...
- 27% - Corsair Hydro X XD7 RGB black (CX-9040005-WW)Pumpa/Tartály kombó
- MacSzerez.com - iPad Pro 12.9" / M2 / Asztro / Wifi + Cellular / 256GB / Garancia
- Apple Watch Ultra3 2028.09.19.-ig garanciás
- Asus TUF Dash F15 FX516PE 15.6" FHD IPS i7-11370H RTX 3050Ti 16GB 512GB NVMe magyar vbill gar
- Dell Latitude 5580,15.6",FHD,i5-6300U,8GB DDR4,256GB SSD,WIN11
- Telefon felvásárlás!! Honor 90 Lite/Honor 90/Honor Magic5 Lite/Honor Magic6 Lite/Honor Magic5 Pro
- MacBook felvásárlás!! MacBook, MacBook Air, MacBook Pro
- Bomba ár! Lenovo ThinkPad X13 G1- i7-10610U I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- BESZÁMÍTÁS! ASUS TUF Z790 i9 14900K 32GB DDR5 1TB SSD RX 9070 XT 16GB ZALMAN Z10 PLUS Seasonic 750W
- Panasonic CF-XZ6 AIO all-in-one laptop tablet 2k touch i5-7300u speciális ütésálló rugged
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



