0
は、私は次の構造体と(のtypedef .Hと.Cからsnake_init()
から取られた)それを初期化する機能を持っています。 C(のみint main()
示す):間接参照場合異なる値
int main(int argc, char *argv[]) {
Snake *s = snake_init(12, 1234);
// 12 1234
printf("*x: %d *y: %d\n", *(s->x), *(s->y));
// 12 1234
printf("*head_x: %d *head_y: %d\n", *(s->head_x), *(s->head_y));
// 1 1
printf("x == head_x: %d y == head_y: %d", s->x == s->head_x, s->y == s->head_y);
return 0;
}
は、それらが同じアドレスを指す場合でも、s->y
とs->head_y
は異なる値を有します。 s->x
およびs->head_x
にはこの問題はありません。上記のコードで何が問題になっていますか? snake_init()
にs->x
とs->y
の初期化と関係がありますか? 「蛇」の後にint型にアクセスするために
ような何かを行うことは、私は私がメモリを割り当てられてきたと信じて割り当てられていないメモリへのs> yでのポインティングとは何か – Tibrogargan
を持っているかもしれません2 * sizeof(int)を指定すると、s-> xとs-> yの両方に対してです。これはそれを行う方法ではありませんか? – GreatHam
's + 2'は未定義の振る舞いを引き起こします –