Ik probeer een linked list te maken die in elke node een cijfer opslaat en het adres van de volgende node. Zit aleen een beetje in de war met malloc()..een node die ik hier mee aanmaak zou ook als gewone node gewijzigd moeten kunnen worden toch?
C:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #include <stdlib.h> #include <stdio.h> #include <math.h> typedef struct node node; struct node{ char digit; node* p; }; node* convert_to_list(int num); main() { node *node_res=0; node_res=convert_to_list(123456); printf("pt main: %c\n", node_res->digit); } node* convert_to_list(int num) { int i,a; char *arr; node *node_ptr=0; node node1; node *temp; node *list_pointer; a= log10(num); arr = malloc((int)a*sizeof(char)); //node1.p =node_ptr; temp = &node1; for (i=0; i<=a; ++i) { node_ptr=(node*) malloc(sizeof(node)); node_ptr->p=temp; temp = node_ptr; } list_pointer= &node1; for (i=0; i<=a; ++i) { node_ptr->digit=arr[i]; list_pointer = list_pointer->p; } return &node1; } |