-
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!
- NetApp StorageGrid SG5712 (NAJ-1502)- adattároló hdd nélkül -3 db
- HPE BladeSystem c7000 Enclosure (403321-B22)-without Blades -
- Intel Modular Server Chassis MFSYS25 adattároló --4x900GB HDD + 7x600GB HDD
- EMC 15-slot Disk Array Enclosure for DataDomain -15x3TB HDD- Adattároló - 2db van
- HPE UPS Extended Runtime Module R8000/3, R12000/3 compatible - kiegészitő modul -rackbe szerelhető
- HIBÁTLAN iPhone 15 Pro Max 256GB Blue Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4427
- Samsung Galaxy A23 5G / 4/128GB / Kártyafüggetlen / 12 Hó Garancia
- Apple iPhone 17 Pro Max 512GB / 36 hónap jótállással!
- ASRock Radeon RX 5600 XT PG D3 6GB OC GDDR6
- Akciós kisWorkstation! Dell Precision 3560 i7-1165G7 4.7GHz / 16GB / 512GB / Quadro T500 2GB FHD 15"
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


