Почему меняется значение в выводе?

Почему в выводе четвертая строчка отличается от первой?

#include <iostream>

struct Point {
    int x;
    int y;
};
struct Rect {
    struct Point lt;
    struct Point rb;
};
Rect* transform(Rect* a) {
    struct Rect b = { {2*a->lt.x- a->rb.x,a->rb.y},{a->lt.x,2*a->rb.y-a->lt.y} };
    struct Rect* rect2;
    rect2 = &b;
    return rect2;
}


int main()
{
    struct Rect a = { {-1,1}, {4,-2} };
    struct Rect* rect;
    rect = transform(&a);


    printf("%d %d %d %d\n", rect->lt.x, rect->lt.y, rect->rb.x, rect->rb.y);
    printf("%d %d %d %d\n", a.lt.x, a.lt.y, a.rb.x, a.rb.y);
    printf("%d %d %d %d\n", a.lt.x, a.lt.y, a.rb.x, a.rb.y);
    printf("%d %d %d %d\n", rect->lt.x, rect->lt.y, rect->rb.x, rect->rb.y);


    return 0;
}

введите сюда описание изображения


Ответы (0 шт):