Ich bin im Moment ziemlich verwirrt mit Zeigern, so hoffe ich, jemand kann mir helfen, wo ich den Fehler mache.Setzen Zeiger Inhalt aus einer Liste von Zeigern in C
Also ich möchte eine Liste von Zeigern auf einige Strukturen haben, und eine Variable mit Zeigern auf alle von ihnen. Diese Liste sollte später auch auf einigen Bedingungen basieren und diese ändern. Also hier nur ein minimales Beispiel:
typedef struct {
int a;
} path;
typedef struct {
path** all_paths;
} has_them;
int main(int argc, char** argv){
path* eno = malloc(sizeof(path));
path* second_path = malloc(sizeof(path));
has_them* all = malloc(sizeof(has_them)); //this list should have all of my allocated path pointers
all->all_paths = malloc(sizeof(path*)*10);
all->all_paths[0] = eno;
all->all_paths[1] = second_path;
printf("%p und %p\n", eno, second_path);
printf("%p und %p\n", all->all_paths[0], all->all_paths[1]);
all->all_paths[1] = NULL;
printf("%p und %p\n", eno, second_path);
printf("%p und %p\n", all->all_paths[0], all->all_paths[1]);
return (EXIT_SUCCESS);
}
Also mein Problem ist, in meiner Methode habe ich nur meine alle Variable und ich möchte diese ein verwenden, um meine ersten Zeiger zu ändern (hier eno und second_path), so setzte sie zum Beispiel zu NULL. Aber wenn ich es tun, wie ich es oben getan habe, ist der erste Zeiger des zweiten Pfades nicht null, sondern bleibt gleich ...
Ist 'all-> all_paths [1] _path = NULL;' ein Tippfehler? Was soll es sein (es sollte einen Fehler geben wie es ist ..)? – Dmitri
ja du hast recht, tut mir leid. Ich habe gerade den Post – malajedala