Liste des Groupes | Revenir à cl c |
Andrey Tarasevich <noone@noone.net> writes:
[...]
>#include <stdio.h>>
>
struct S { int a[10]; };
>
int main()
{
struct S a, b = { 0 };
int *pa, *pb, *pc;
>
pa = &a.a[5];
pb = &b.a[5];
pc = &(a = b).a[5];
>
printf("%p %p %p\n", pa, pb, pc);
}
[...]
>
I think that code has undefined behavior.
(a = b) is an rvalue that refers to an object of type struct S with
temporary lifetime. pc holds the address of a subobject of that
temporary object. The object reaches the end of its lifetime at the end
of the evaluation of the full expression. You then print its value.
Les messages affichés proviennent d'usenet.