Почему меняется значение в выводе?
Почему в выводе четвертая строчка отличается от первой?
#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;
}
