Попробуйте в начало main печать еще чего-нибудь добавить - нормально напечатает? И удалите на всякий случай upr_struct_2.exe перед рекомпиляцией.
Не помогает.
Может быть, вы ее 7 лет не обновляли, а может быть, даже 7 лет назад взяли не самую свежую.
Может быть. Но, по-моему, тут неувязка слишком вопиющая даже для ранней версии (если в этом дело).
Итак, я понял следующее. Код правильный, а не работает потому, что в системе компьютер + ОС + компилятор что-то не то. Может, вирус или типа того. Решать этот вопрос долго, и лучше я буду вообще без структур обходиться. Не такое уж большое неудобство. Всю жизнь обходился, и дальше не помру.
Пошел, однако, альтернативным путем, через передачу адреса, вот так:
Код:
#include <stdio.h>
struct vect { int x; int y;};
void sum_vect(struct vect, struct vect, struct vect *);
void sum_vect(struct vect vect1, struct vect vect2, struct vect *vect3)
{
(*vect3).x=vect1.x+vect2.x;
(*vect3).y=vect1.y+vect2.y;
return;
}
main()
{
struct vect vect1, vect2, vect3;
vect1.x=1; vect1.y=2; vect2.x=3; vect2.y=4;
sum_vect(vect1,vect2, &vect3);
printf("vect3.x=%d, vect3.y=%d\n", vect3.x, vect3.y);
return 0;
}
И таки работает.
В общем, спасибо всем участвовавшим. Вопрос можно считать исчерпанным.