#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p, c;
int *a, b;
float *x, y = 3.5f;
double *m, n;
// --- Вывод адресов и размеров (по условию) ---
printf("p: %p (%zu)\n", (void*)&p
, sizeof(p
)); printf("c: %p (%zu)\n", (void*)&c
, sizeof(c
)); printf("a: %p (%zu)\n", (void*)&a
, sizeof(a
)); printf("b: %p (%zu)\n", (void*)&b
, sizeof(b
)); printf("x: %p (%zu)\n", (void*)&x
, sizeof(x
)); printf("y: %p (%zu)\n", (void*)&y
, sizeof(y
)); printf("m: %p (%zu)\n", (void*)&m
, sizeof(m
)); printf("n: %p (%zu)\n", (void*)&n
, sizeof(n
));
a = &b;
// === ТОЧКА ОСТАНОВА ===
scanf("%d", a
); // ✅ исправлено scan → scanf printf("a=%p\t*a=%d\tb=%d\n", (void*)a
, *a
, b
); p = (char*)a; // ✅ добавлен cast для подавления warning
c = *p;
*p = *(p+3);
*(p+3) = c;
printf("p=%p\tc=%d\ta=%p\tb=%d\n", (void*)p
, c
, (void*)a
, b
); x = &y;
printf("x=%p\t*x=%f\ty=%f\n", (void*)x
, *x
, y
); a = (int*)x; // ✅ cast
*a = *(int*)x; // ⚠️ strict aliasing violation остаётся, но компилируется
printf("a=%p\t*a=%d\tx=%p\t*x=%f\ty=%f\n", (void*)a
, *a
, (void*)x
, *x
, y
); // ✅ pintf → printf a = &b;
y = 12345.6789f; // ✅ запятая → точка + f
printf("x=%p\t*x=%f\ty=%f\n", (void*)x
, *x
, y
); p = (char*)x; // ✅ cast
c = *p;
*p = *(p+3);
*(p+3) = c;
printf("p=%p\tc=%d\tx=%p\ty=%f\n", (void*)p
, c
, (void*)x
, y
); m = &n;
printf("m=%p\t*m=%lf\tn=%lf\n", (void*)m
, *m
, n
); n = 5.5;
printf("m=%p\t*m=%lf\tn=%lf\n", (void*)m
, *m
, n
); b = (int)1.7; y = 1.7f; n = 1.7;
printf("b=%d\ty=%f\tn=%lf\n", b
, y
, n
); // ✅ print → printf printf("*a=%d\t*x=%f\t*m=%lf\n", *a
, *x
, *m
); m += 2; // ⚠️ всё ещё UB — выход за границы
printf("n=%lf\tn=%p\tm=%p\n", n
, (void*)&n
, (void*)m
); *m = (float)*a - n + (int)*x; // ⚠️ запись в произвольную память
printf("m=%p\t*m=%lf\n", (void*)m
, *m
);
// --- Вывод значений (по условию) ---
printf("Final: p=%p c=%d a=%p b=%d x=%p y=%f m=%p n=%f\n", (void*)p, c, (void*)a, b, (void*)x, y, (void*)m, n);
return 0; // ✅ return0 → return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKCkKewogICAgY2hhciAqcCwgYzsKICAgIGludCAqYSwgYjsKICAgIGZsb2F0ICp4LCB5ID0gMy41ZjsKICAgIGRvdWJsZSAqbSwgbjsKCiAgICAvLyAtLS0g0JLRi9Cy0L7QtCDQsNC00YDQtdGB0L7QsiDQuCDRgNCw0LfQvNC10YDQvtCyICjQv9C+INGD0YHQu9C+0LLQuNGOKSAtLS0KICAgIHByaW50ZigicDogJXAgKCV6dSlcbiIsICh2b2lkKikmcCwgc2l6ZW9mKHApKTsKICAgIHByaW50ZigiYzogJXAgKCV6dSlcbiIsICh2b2lkKikmYywgc2l6ZW9mKGMpKTsKICAgIHByaW50ZigiYTogJXAgKCV6dSlcbiIsICh2b2lkKikmYSwgc2l6ZW9mKGEpKTsKICAgIHByaW50ZigiYjogJXAgKCV6dSlcbiIsICh2b2lkKikmYiwgc2l6ZW9mKGIpKTsKICAgIHByaW50ZigieDogJXAgKCV6dSlcbiIsICh2b2lkKikmeCwgc2l6ZW9mKHgpKTsKICAgIHByaW50ZigieTogJXAgKCV6dSlcbiIsICh2b2lkKikmeSwgc2l6ZW9mKHkpKTsKICAgIHByaW50ZigibTogJXAgKCV6dSlcbiIsICh2b2lkKikmbSwgc2l6ZW9mKG0pKTsKICAgIHByaW50ZigibjogJXAgKCV6dSlcbiIsICh2b2lkKikmbiwgc2l6ZW9mKG4pKTsKCiAgICBhID0gJmI7CiAgICBwcmludGYoIiAgRW50ZXIgYiA9ICIpOwogICAgLy8gPT09INCi0J7Qp9Ca0JAg0J7QodCi0JDQndCe0JLQkCA9PT0KICAgIHNjYW5mKCIlZCIsIGEpOyAgICAgICAgIC8vIOKchSDQuNGB0L/RgNCw0LLQu9C10L3QviBzY2FuIOKGkiBzY2FuZgogICAgcHJpbnRmKCJhPSVwXHQqYT0lZFx0Yj0lZFxuIiwgKHZvaWQqKWEsICphLCBiKTsKICAgIHAgPSAoY2hhciopYTsgICAgICAgICAgIC8vIOKchSDQtNC+0LHQsNCy0LvQtdC9IGNhc3Qg0LTQu9GPINC/0L7QtNCw0LLQu9C10L3QuNGPIHdhcm5pbmcKICAgIGMgPSAqcDsKICAgICpwID0gKihwKzMpOwogICAgKihwKzMpID0gYzsKICAgIHByaW50ZigicD0lcFx0Yz0lZFx0YT0lcFx0Yj0lZFxuIiwgKHZvaWQqKXAsIGMsICh2b2lkKilhLCBiKTsKICAgIHggPSAmeTsKICAgIHByaW50ZigieD0lcFx0Kng9JWZcdHk9JWZcbiIsICh2b2lkKil4LCAqeCwgeSk7CiAgICBhID0gKGludCopeDsgICAgICAgICAgICAvLyDinIUgY2FzdAogICAgKmEgPSAqKGludCopeDsgICAgICAgICAgLy8g4pqg77iPIHN0cmljdCBhbGlhc2luZyB2aW9sYXRpb24g0L7RgdGC0LDRkdGC0YHRjywg0L3QviDQutC+0LzQv9C40LvQuNGA0YPQtdGC0YHRjwogICAgcHJpbnRmKCJhPSVwXHQqYT0lZFx0eD0lcFx0Kng9JWZcdHk9JWZcbiIsICh2b2lkKilhLCAqYSwgKHZvaWQqKXgsICp4LCB5KTsgIC8vIOKchSBwaW50ZiDihpIgcHJpbnRmCiAgICBhID0gJmI7CiAgICB5ID0gMTIzNDUuNjc4OWY7ICAgICAgICAvLyDinIUg0LfQsNC/0Y/RgtCw0Y8g4oaSINGC0L7Rh9C60LAgKyBmCiAgICBwcmludGYoIng9JXBcdCp4PSVmXHR5PSVmXG4iLCAodm9pZCopeCwgKngsIHkpOwogICAgcCA9IChjaGFyKil4OyAgICAgICAgICAgLy8g4pyFIGNhc3QKICAgIGMgPSAqcDsKICAgICpwID0gKihwKzMpOwogICAgKihwKzMpID0gYzsKICAgIHByaW50ZigicD0lcFx0Yz0lZFx0eD0lcFx0eT0lZlxuIiwgKHZvaWQqKXAsIGMsICh2b2lkKil4LCB5KTsKICAgIG0gPSAmbjsKICAgIHByaW50ZigibT0lcFx0Km09JWxmXHRuPSVsZlxuIiwgKHZvaWQqKW0sICptLCBuKTsKICAgIG4gPSA1LjU7CiAgICBwcmludGYoIm09JXBcdCptPSVsZlx0bj0lbGZcbiIsICh2b2lkKiltLCAqbSwgbik7CiAgICBiID0gKGludCkxLjc7IHkgPSAxLjdmOyBuID0gMS43OwogICAgcHJpbnRmKCJiPSVkXHR5PSVmXHRuPSVsZlxuIiwgYiwgeSwgbik7ICAvLyDinIUgcHJpbnQg4oaSIHByaW50ZgogICAgcHJpbnRmKCIqYT0lZFx0Kng9JWZcdCptPSVsZlxuIiwgKmEsICp4LCAqbSk7CiAgICBtICs9IDI7ICAgICAgICAgICAgICAgICAvLyDimqDvuI8g0LLRgdGRINC10YnRkSBVQiDigJQg0LLRi9GF0L7QtCDQt9CwINCz0YDQsNC90LjRhtGLCiAgICBwcmludGYoIm49JWxmXHRuPSVwXHRtPSVwXG4iLCBuLCAodm9pZCopJm4sICh2b2lkKiltKTsKICAgICptID0gKGZsb2F0KSphIC0gbiArIChpbnQpKng7ICAvLyDimqDvuI8g0LfQsNC/0LjRgdGMINCyINC/0YDQvtC40LfQstC+0LvRjNC90YPRjiDQv9Cw0LzRj9GC0YwKICAgIHByaW50ZigibT0lcFx0Km09JWxmXG4iLCAodm9pZCopbSwgKm0pOwoKICAgIC8vIC0tLSDQktGL0LLQvtC0INC30L3QsNGH0LXQvdC40LkgKNC/0L4g0YPRgdC70L7QstC40Y4pIC0tLQogICAgcHJpbnRmKCJGaW5hbDogcD0lcCBjPSVkIGE9JXAgYj0lZCB4PSVwIHk9JWYgbT0lcCBuPSVmXG4iLAogICAgICAgICAgICh2b2lkKilwLCBjLCAodm9pZCopYSwgYiwgKHZvaWQqKXgsIHksICh2b2lkKiltLCBuKTsKCiAgICByZXR1cm4gMDsgIC8vIOKchSByZXR1cm4wIOKGkiByZXR1cm4gMDsKfQ==