c++ problem mit struct

burni87

Semiprofi
Thread Starter
Mitglied seit
03.07.2005
Beiträge
3.551
PHP:
struct person
	{
		string name;
		struct person *next;
	};

	struct  person anfang;
	anfang.name = "asdf";
	anfang.next = new person;
	person c = (person)anfang.next;

ich habe vor mit dem code eine Liste von personen zu verstehen, jeder eintrag soll eine "next", sprich eine folgende person haben
ich bekomme dabei aber immer einen "cannot convert..." fehler wenn ich das ganze auf c zuweisen will (letzte zeile), folgender code liefert selben fehler

PHP:
struct person
	{
		string name;
		struct person *next;
	};

	struct  person anfang;
	anfang.name = "asdf";
	anfang.next = new person;
	struct  person b;
	b.name = "asdf";
       anfang.next = b;

wieder in der letzten zeile, jemand ne idee ?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
PHP:
edit: hier stand fehlerhafter Code, für Lösung runter scrollen


so in etwa sollte das funktionieren, musste mir leider verzeiehn ahb schon länger nicht mehr C/C++ coded, war zu beschäftigt mit PHP/C#/Java
können also noch ein paar einzelne Fehler drinn sein da ich das ganze nicht getestet hab (denke mal das ein paar Pointer nicht stimmen ^^)

für weiter Infos, hier wieder fragen oder ein im google noch "c++ linked list" suchen

wenn du allerdings ncoh nicht so gut programmieren kannst, wäre am Anfang vielleicht auch ein Array eine gute möglichkeit für dich, oder eine fertige Lösung für linked lists -> z.B. vector-bibliothek

mfg
aelo
 
Zuletzt bearbeitet:
wenn ich nur
pliste->name = null;

mache krieg ich schon ein "undeclared identfier" ... ich hab das gefühl das liegt wiedermal an dem sch.. visual studio

€: auch wenn ich den rest mache krieg ich fehler
wenn ich char name [] mache kommt ein fehler und bei char name kommt wieder der convert fehler
 
Zuletzt bearbeitet:
sry

Code:
char *name[];

sollte natürlich auch ein Pointer sein :d
Visual Studio ist super!

mfg
aelo


edit:
so habs jetzt mal genauer angesehen, so funktioniert es:

PHP:
#include <iostream>
#include <string>
using namespace std;

struct person
    {
        string name;
        person *next;
    }; 

int main()
{
	 person *pliste = new person;
	 person *swap;
	 pliste->name = "name1";
	 pliste->next = 0;
	 
	 swap = new person;
	 swap->name = "name2";
	 swap->next=0; 
	 pliste->next = swap;
	 
	 swap = new person;
	 swap->name = "name3";
	 swap->next = 0;
	 person *zeiger = pliste;
	 while(zeiger->next !=0)zeiger=zeiger->next;
	 zeiger->next = swap;

	cout<<pliste->name<<" "<<pliste->next->name<<" "<<pliste->next->next->name<<endl;



 return 0;
}

beim nächsten mal sollte ich dran denken null != 0 :d
und in C++ kann man pointer nicht ohne weiteres auf null zeigen lassen nur auf 0 (speicheradresse 0)...
 
Zuletzt bearbeitet:
PHP:
struct person
	{
		string name;
		struct person *next;
	};

	struct  person anfang;
	anfang.name = "asdf";
	anfang.next = new person;
	person c = (person)anfang.next;

person* c = anfang.next;

ich habe vor mit dem code eine Liste von personen zu verstehen, jeder eintrag soll eine "next", sprich eine folgende person haben
ich bekomme dabei aber immer einen "cannot convert..." fehler wenn ich das ganze auf c zuweisen will (letzte zeile), folgender code liefert selben fehler

PHP:
struct person
	{
		string name;
		struct person *next;
	};

	struct  person anfang;
	anfang.name = "asdf";
	anfang.next = new person;
	struct  person b;
	b.name = "asdf";
       anfang.next = b;

wieder in der letzten zeile, jemand ne idee ?

anfang.next = &b;
 
das kann nicht funktionieren, da schon im struct fehler drinn sind

struct person
{
string name;
person *next;
};

so wärs schon besser,
mein BSP aus Post #4 funktioniert übrigens

mfg
aelo
 
so wies aelo gemacht hat hats bei mir funktioniert ;)
 
Du brauchst bei deinen Coden nur 2 Zeichen, * und &, hizufügen dann funktioniert das auch. Und so versteht man wie Pointer in C funktionieren! ;)
 
ist ja egal, wollte das mit dem struct nur mal anschaun

arraylisten unter java sind eh viel schöner :shot:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh