今はポインタとかなり混乱しているので、誰かが私がどこにエラーを起こしているのか助けてくれることを願っています。ポインタのリストからCのポインタの内容を設定する
私はいくつかの構造体へのポインタのリストと、それらのすべてへのポインタを持つ変数のリストを持っています。このリストは後でいくつかの条件に基づいて設定し、それらを変更する必要があります。だからここだけの最小限の例:
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);
}
だから私の問題であり、私の方法で私は私のすべての変数を持っていると私は私の最初のポインタ(ここではENOとsecond_path)を変更するには、このいずれかを使用したいので、それらを設定しますたとえばNULLに設定します。このセットアップ、NULLにeno
とsecond_path
を設定するだけように が、私は上記のそれをしなかったように私はそれを行う際に、第二の経路の最初のポインタがnullではありませんが、同じまま...
'all-> all_paths [1] _path = NULL;は入力ミスですか?それは何であるはずですか(それは..のようなエラーを与えるはずです)? – Dmitri
はい、それは残念です。私は投稿 – malajedala