Miert nem mukodik a lancolt lista?
#include <iostream>
using namespace std;
typedef struct tanulo
{
string nev;
int eletkor;
struct tanulo *kov;
} tanulo;
int main()
{
tanulo *fej, *akt;
for(int i = 1; i<= 10; i++)
{
string nev;
int eletkor;
cout << "Add meg a nevet: ";
cin >> nev;
cout << "Add meg az eletkort: ";
cin >> eletkor;
akt = new tanulo;
akt->nev = nev;
akt->eletkor = eletkor;
akt->kov = NULL;
if(fej == NULL)
{
fej = akt;
fej->kov = NULL;
}else
{
tanulo *jelenlegi;
jelenlegi = fej;
while(jelenlegi != NULL)
{
jelenlegi = jelenlegi -> kov;
}
jelenlegi -> kov = akt;
}
}
for(tanulo *i = fej; i != NULL; i = i -> kov)
{
cout << i->nev << " ";
}
return 0;
}
Elkezded írni a C++ kódodat...
> #include <iostream>
> using namespace std;
Aztán hirtelen átváltasz C nyelvre:
> typedef struct tanulo
Értem én hogy elfogadja, de C++ globális névtér van, nincs typedef struct. A struct-nak is egészen más a mechanizmusa és mást is jelent. Illetve nem árt ha nagybetűvel írod az osztály nevét és máris nem szúr szemet senkinek.
Ezek számomra hibák, bár a kérdésedet még nem válaszolja mag.
De nyugi, van több hiba is:
> tanulo *fej, *akt;
Ezek az értékek inicializálatlanok, azaz bármilyen értéket felvehetnek. Később számítasz rá, hogy az értékűk NULL, pedig nem állítottad be őket. Nezzük így:
> tanulo *fej, *akt = NULL;
Ez már majdnem jó, de a fej mutató így nem kap értéket. Lássuk hogy néz ki helyesen:
> tanulo* fej = NULL;
> tanulo* akt = NULL;
Feltételezem, hogy C++11 szabványban kódolsz - miért is tennéd máshogyan -, ezért a NULL helyett írhatod a nullptr -t is, ami jóval szofisztikáltabb megoldás.
Következő hiba:
> akt = new tanulo;
Itt hiányzik egy (), itt ugyanis egy default konstruktort hívsz. Helyesen:
> akt = new tanulo();
A többi nagyjából jó.
Viszont van egy olyan érzésem, hogy kicsit korán került ki ez a kérdés. A legtöbb hibád apró figyelmetlenség, vagy az alaposabb alapismeretek hiányából fakad. Kicsit feküdj rá az irodalomra és kérlek ne keverd a C és a C++ nyelvet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!