-
Fototrend

Ú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!
- MWC 2026: Megérkezett a Xiaomi Pad 8 sorozat
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- MWC 2026: Megérkezett a NXTPaper AMOLED
- Huawei P10 - pisztácia nem is volt
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Spórolós topik
- Viccrovat
- BestBuy topik
- CMF Phone 1 - egy jó telefon
- További aktív témák...
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- DELL Alienware 16X Aurora AC16251 Csillagközi indigó 2029-ig garancia
- Bomba ár! HP Elitebook 850 G3 - i5-6GEN I 8GB I 256GB SSD I 15,6" FULL HD I Cam I W10 I Gari!
- Apple iPhone 5/5S szerviz alkatrészek, készletről akár másnapra!
- Apple iPhone SE 2022 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

