- Luck Dragon: Asszociációs játék. :)
- Real Racing 3 - Freemium csoda
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- MaxxDamage: Vizes Laptop Hűtés? Lehetséges? Igen!
- Argos: Az vagy, amit megeszel
- bambano: Bambanő háza tája
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- Barthezz2: Cím: Ismeretlen - Chapter 5
-
LOGOUT
Új hozzászólás Aktív témák
-
_Petya_
őstag
válasz
Jester01 #1047 üzenetére
struct elem * Beletesz(struct elem *e,int szam) {
struct elem *seged;
seged = (struct elem *)malloc(sizeof(struct elem)) ; // csinalunk egy uj elemet
(seged->csat) = e; // aminek a pointere a sor elso elemere mutat
e = seged; // a sorra mutato pointert beallitjuk az uj elemre
(seged->sorszam) = szam ; // es kitoltjuk az ereteket
if (szam != 0)printf(''beletesz: %d'',szam) ;
return e;
}
int Kivesz(struct elem **e) {
struct elem *seged1; // ket segedpointerunk lesz
struct elem *seged2;
seged2 = *e; // seged2 az utolso elotti, seged 1 az utolso pont (illetve most az elso 2)
if (seged2 != NULL) { // ha van a sorban elem
if (seged2->csat != NULL) { // es legalabb ketto elem van a sorbwn
seged1 = seged2->csat;
while(seged1->csat != NULL) { // mindket pointerrel jobbra lepunk a lancban
seged2 = seged1;
seged1 = (seged1->csat);
}
seged2->csat=NULL;
printf(''kivesz: %d'',seged1->sorszam) ;
return (seged1->sorszam); // vegigmegyunk, amig seged1->csat == 0
} // es visszaterunk seged1 ertekevel, seged2 lesz a lanc vege
else { // ha csak egy elem van, akkor kivesszuk, e-t null-ra allitjuk (ures)
*e = NULL;
printf(''kivesz: %d'',seged2->sorszam) ;
return (seged2->sorszam);
}
}
return 0;
}
Átírtam így, dex = Kivesz(&asz);
-nél elszáll, m sőt itt is :
asz = Beletesz(asz,a) ;
j = asz;
fprintf(kifile,''%d '',asz->sorszam) ;szeirntem így is valami baja van. Mi lehet a gond?
Petya -
_Petya_
őstag
Üdv!
Az alábbi eljárás miért nem működik szerintetek?void Beletesz(struct elem *e,int szam) {
seged = malloc(sizeof(struct elem)) ;
(seged->csat) = e;
e = seged;
(seged->sorszam) = szam ;
if (szam != 0)printf(''beletesz: %d'',szam) ;
}
Ez a hívás:Beletesz(sor,18) ;
elvileg beletesz a sorba egy elemet, ki is írja, hogybeletesz:18
, de közvetlenül utána a sor == NULL... Mit csinálok rosszul?
Petya -
_Petya_
őstag
Üdv!
Elakadtam a programommal, csak a kérdéses részt másolom ide (a többit úgyis kikommenteztem), szóval ami itt van, annak futnia kellene...
struct ListaElem {
int pont;
struct ListaElem *kov;
};
struct ListaElem *sv,*ss,
void SorBa(int e) {
sv = malloc(sizeof(struct ListaElem)) ;
(sv->kov) = SzK;
SzK = sv;
(sv->pont) = e ;
}
int main(int argc, char *argv[]) {
SzK = NULL;
SorBa(1) ;
SorBa(2) ;
SorBa(3) ;
SorBa(4) ;
SorBa(5) ;
ss = SzK;
while (ss != NULL) {
fprintf(fout,''%d '',ss->pont) ;
ss = ss->kov;
}
return 0;
}
Tehát megpróbálom tesztelni a SorBa eljárást, de mindig segfault-ot dob. Van öteletek, hogy mi a baj?
Petya
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! FEHÉR ipad pro 13" M4 billentyűzet, VADIÚJ! EU-MAGYAR átvilágítós (lézeresen)
- Lenovo ThinkPad T480, T580, P51s, P52s, T480s belső akkumulátor eladó
- Bomba ár! Fujitsu LifeBook U904 - i5-4G I 10GB I 256SSD I 14" QHD+ I HDMI I Cam I W10 I Garancia!
- GYÖNYÖRŰ iPhone 13 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3036
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest