Betreft een vraag over de programmeertaal C. Ik ben hiermee nu al meerdere uren aan het prutsen, en kan niks vinden wat lukt. Ik heb hieronder de betreffende (belangrijke) stukjes gegeven.
Beginsituatie van inhoud:
1. Startnode
De eerste node die ik toevoeg gaat prima; de waarde wordt toegevoegd. De inhoud wordt dan volgens mij:
1. startnode
2. node1
Zodra ik de tweede node toevoeg, gaat het mis. De waarde zou moeten worden:
1. startnode
2. node1
3. node2
Echter blijkt node1 niet meer te bestaan, en blijkt node2 naar zichzelf te verwijzen.. in ieder geval blijft hij hangen zodra ik alle waardes langs wil gaan door steeds 'next' te nemen.
Wat doe ik fout?
N.B. [C] in titel vergeten; reeds aangegeven aan mods.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| typedef struct node1 { Triangle t; struct node1 *next; } Node; Node makeNode (Triangle t) { Node node; node.t = t; node.next = NULL; return node; } |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| Node startnode; void addTriangle(Triangle t) { int i = 0; Node nieuweNode = makeNode(t); Node *vorigenode; Node *huidigenode; vorigenode = &startnode; huidigenode = vorigenode->next; while (huidigenode != NULL) { /*if (area(huidigenode->t) > area(nieuweNode.t)) { vorigenode->next = &nieuweNode; nieuweNode.next = huidigenode; return; }*/ vorigenode = huidigenode; huidigenode = vorigenode->next; } vorigenode->next = &nieuweNode; drukdriehoekrijaf(); } |
Beginsituatie van inhoud:
1. Startnode
De eerste node die ik toevoeg gaat prima; de waarde wordt toegevoegd. De inhoud wordt dan volgens mij:
1. startnode
2. node1
Zodra ik de tweede node toevoeg, gaat het mis. De waarde zou moeten worden:
1. startnode
2. node1
3. node2
Echter blijkt node1 niet meer te bestaan, en blijkt node2 naar zichzelf te verwijzen.. in ieder geval blijft hij hangen zodra ik alle waardes langs wil gaan door steeds 'next' te nemen.
Wat doe ik fout?
N.B. [C] in titel vergeten; reeds aangegeven aan mods.