» Einfach verkettete Liste erstellt, Elementinhalt lässt sich mithilfe von Zeiger nur einmal printen

Liste erstellen, der Next-Zeiger des ersten Elements geht immer mit...Neuen Thread eröffnenNeue Antwort erstellenSieb des Eratosthenes Algorithmus, Lösung
AutorNachricht
Beobachter 
Anmeldedatum: 06.08.2020
Beiträge: 2
06.08.2020, 14:44
zitieren

Zum Testen habe ich eine Liste per Hand erstellt und will dann als Chek am Ende ein paar Elementinhalte ausgeben.
Es scheiterte schon daran, dass ich l->next->next->position ausgeben zu versuche, nachdem ich den Zeiger l vorher zum Ausgeben einmal benutzt habe.

Danach habe ich mal ganz stupide dieselbe Zeile zum Ausgeben nochmal verwendet, um zu schauen, ob es an meiner Syntax lag, aber siehe da, es kommt beim zweiten mal ein seltsamer Wert heraus, obwohl alles genau gleich geschrieben ist, wie in der Zeile davor....
Versteht jemand warum?


/*
Dies ist ein Beispielpropgramm zum erstellen einer einfach verketteten Liste.
Version 1.0, 06.08.2020, 13:42 Uhr
By Andy Yo
*/


//______________Dies ist der Quelltext____________________________
#include <stdio.h>

//______________Initialisierung______________

//Structs
struct person
{
//char *name;
int position;
struct person *next;
};


//Ints und Arrays
int array[3] = {5, 6, 10};
int i = 0;


//Funktionen
//struct person *go (struct person starti, int ary[])

struct person *go (struct person *list)
{
struct person p1;
p1.position = 2;
p1.next = NULL;

list = &p1;
printf("p1 wurde erstellt, list zeigt darauf, dessen Position ist %i\n", list->position);

struct person p2;
p2.position = 13;
p2.next = NULL;

list->next = &p2;
printf("p2 wurde erstellt, p1 bzw. listnext zeigt nun auf p2 mit der Position %i\n", list->next->position);

list = list->next;
printf("list wurde auf p2 gesetzt und besitzt nun die Position %i\n", list->position);

struct person p3;
p3.position = 56;
p3.next = NULL;

list->next = &p3;
printf("p3 wurde erstellt, p2 bzw. listnext zeigt nun auf p3 mit der Position %i\n", list->next->position);

list = &p3;
printf("list wurde auf p3 gesetzt und besitzt nun die Position %i\n", list->position);

list = &p1;
printf("list zeigt wieder auf p1, also zeigt listnext bzw. p1 auf p2 , check Position p2: %i\n\n\n", list->next->position);

return list;
}


int main (void)
{
struct person *l;
l = go(l);
printf ("Aus list wurde l.\nl zeigt auf p1 mit Pos. %i\n", l->position);
printf ("l zeigt auf p1 mit Pos. %i\n", l->position);
}


 
Anmerkung 2020-08-06 164259.jpg
Anmerkung 2020-08-06 164259.jpg - [Bild vergrößern]


pn
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
07.08.2020, 15:26
zitieren

HI AndyYo

Also bei mir sieht die Ausgabe(SUSE Linux tumbleweed) so aus:[img]file:///home/josef/screenshots/verklist.jpg[/img]


 
verklist.jpg
verklist.jpg - [Bild vergrößern]


 4x  bearbeitet
pn
Trainee 

Name: Mirko
Geschlecht:
Anmeldedatum: 06.12.2019
Beiträge: 46
Wohnort: Weingarten
07.08.2020, 17:29
zitieren

Halliho,

unter Linux (Debian) mit dem GCC-Compiler ist das Ergebnis wie beim Guiseppe.
Auf dem Mac mit dem Clang-Compiler ist das Ergebnis wie bei AndyYo.

Um dahinterzukommen was los ist, solltest Du den Debugger zu Rate ziehen. So würde ich es machen...
Übrigens, schalte doch beim Compilieren die Warnungen ein und ignoriere sie nicht. Vielleicht hilft das ja schon. ;)


pn
Junior 
Name: Voller Name als Anagramm: Fitje Weshoms
Geschlecht:
Fahrzeug: Yamaha YZF R6 Thundercat
Anmeldedatum: 15.07.2012
Beiträge: 92
Wohnort: Amberg, Oberpfalz
09.08.2020, 16:11
zitieren

steinsgateHalliho,

unter Linux (Debian) mit dem GCC-Compiler ist das Ergebnis wie beim Guiseppe.
Auf dem Mac mit dem Clang-Compiler ist das Ergebnis wie bei AndyYo.

Um dahinterzukommen was los ist, solltest Du den Debugger zu Rate ziehen. So würde ich es machen...
Übrigens, schalte doch beim Compilieren die Warnungen ein und ignoriere sie nicht. Vielleicht hilft das ja schon. ;)


Ich denke, das es daran liegt, wie GCC und Clang unter den verschiedenen Betriebssystemen den Speicher anspricht. Eventuell vorher allokieren.
Aber vorher die Struktur und die Funktionsdeklarationen in einer header-Datei verpacken, die
Funktionsdefiniton in eine separate Datei. Dann mal gucken , wo der Hase im Pfeffer liegt.


pn
Gast 
09.08.2020, 16:11
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Einfach verkettete Liste erstellt, Elementinhalt lässt sich mithilfe von Zeiger nur einmal printen" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
 Liste erstellen, der Next-Zeiger des ersten Elements geht immer mit...
Ich habe ein struct Element erstellt, welches nur einen Positionswert als int und einen Next-Zeiger hat. Mit diesem Element und einem Zeiger, wollte ihc eine Liste erstellen. Meine Funktion nennt dazu das erste Element starti und den Zeiger...
[C++]von AndyYo
0
285
06.08.2020, 14:16
AndyYo
EP3 auf einmal leiser und hört sich komisch an
HAllo! Heute nach der Arbeit bin ich über die Autobahn gefahren. Tacho zeigte so 260 an und es wurde länger Dauervollgas gefahren. Alles ohne Probleme. Dann nach ner Baustelle wollte ich beschleunigen und der Wagen hörte sich ähnlich an, als ob er nur...
von DOWN
16
1.007
09.04.2012, 05:41
Ring_Integra
Tachoscheiben/Zeiger
Hallo habe mir aus ebay tachoscheiben geholt nun wie setze ich die auf die originalen drauf , denn ich bekomm ja die zeiger nicht runter, oder gibts da einen bestimmten trick? oder wie bekommt man die sonst...
von franke123
3
755
20.01.2006, 10:21
CTR143
Zündung ( Warnlampen,Zeiger )
Hey Leute Mal eine Frage? Wenn ich die Zündung Einschalte Leuchtet bei den Armaturen alles auf ( ist klar) Nach ca 2sec Leuchten nur noch ein paar Sachen ( Öl,Lichtmaschine usw ) auch klar. Wenn ich ihn dann Starte und er läuft fängt das ganze von...
von noldi
4
332
20.01.2011, 15:32
noldi
Ej6 - Bitte um Mithilfe
Ich will meiner Dame zusammen mit ihren Eltern ein Auto, zu ihrem Bday kaufen. Nun haben wir das schicke Teil gesehen. Schaut es euch mal an und sagt mir mal was ihr davon haltet! Sie wollte unbedingt einen honda haben, leider mit v-tec, dieses auto hat...
von AngelEyes
9
286
25.06.2012, 14:34
AngelEyes
Suche Programmierer der mir Programm erstellt
Hallo zusammen , ich suche jemanden der mir ein Programm erstellt das in einem bestimmten Zeitintervall kontinuirlich einen bestimmten Betrag auf eine von mir ausgesuchte Wette setzt. Natürlich würde ich denjenigen auch gut entlohnen , es wäre nett falls...
[Jobs & Stellenangebote]von Stevenkiss
0
358
15.04.2012, 05:31
Stevenkiss
Vermieter erstellt Nebenkostenabrechnung nicht - Was tun?
Hallo zusammen. Mein Problem was ich habe, ist mehr als nur verfahren, und ich weiß nicht wie ich mich nun weiter verhalten soll. Das Mietverhältnis besteht seit dem 01.12.1989 Im Mietvertrag ist Vereinbart worden das die Monatliche Vorauszahlung 50,00...
von Klaus J.
1
1.160
09.10.2012, 16:44
Honda Racing Team TH
Erstellt Euer Psychologisches Gutachten
ist echt gut, probierts einfach ma aus. [URL=http://www.uci-kinowelt.de/_img/specials/midnight_movie/HorrorfilmGame.swf]Horrorfilm Game[/URL] bei mir kommt sowas raus: SAW Sie sind Jigsaw: Sie sind der berechnende Killer, der seine Opfer...
von VtecMac
15
953
28.10.2007, 20:03
Indie on the Rocks
Wie erstellt man Collapsible tables (ein- und aufklappbare)
Hallo, die Suche nach einer Lösung für folgendes Problem bringt mich nun langsam zum verzweifeln. Ich hoffe, dass mir von euch jemand dabei auf die Sprünge helfen kann. Ich hätte mir in meinem Wiki auf- und zuklappbare Tabellen vorgestellt. Auf...
von uwater
0
367
17.01.2011, 19:54
uwater
Zeiger Check bei Zündung an (Tacho Loop)
Ich habe schon seid tagen paar spielerrein für mein auto im kopf ... nun bin ich auf dieses vidEo gestoßen http://www.motor-talk.de/videos/mercedes-benz-zeiger-loop-by-itc-technologie-mov-v540071.html Ich weis ist mercedes ... Kann man so etwas bei...
von civic_nico
5
450
07.10.2013, 10:19
DaFR34K
© 2004 - 2025 www.programmierer-forum.de | Communities | Impressum |