Weet niet precies hoe ik mijn probleem moet omschrijven, maar ik probeer dus een array aan te maken op de plek van een pointer die als argument word meegegeven aan de functie.
Aangezien de code meer zegt dan ik kan uitleggen hier de code:
Echter werkt dat helaas niet echt:
Iemand een idee wat ik fout doe?
Aangezien de code meer zegt dan ik kan uitleggen hier de code:
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
| #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct foo_s { char *bar; } foo; int main(int argc, char **argv) { foo *array; int num_elements; int i; num_elements = create_array(&array); for (i =0; i< num_elements; i++) { printf("%s\n", array[i].bar); } } int create_array(foo **out) { int elements = 10; *out = malloc(sizeof(foo *) * elements); for (int i = 0; i < elements; i++) { out[i] = malloc(sizeof(foo)); out[i]->bar = strdup("some data"); } return elements; } |
Echter werkt dat helaas niet echt:
% ./a.out some data (null) (null) (null) Segmentation fault
Iemand een idee wat ik fout doe?