Comportamento indefinido: ao tentar acessar o resultado da chamada de função
O seguinte compila e imprime "string" como uma saída.
#include <stdio.h>
struct S { int x; char c[7]; };
struct S bar() {
struct S s = {42, "string"};
return s;
}
int main()
{
printf("%s", bar().c);
}
Aparentemente, isso parece invocar um comportamento indefinido de acordo com
C99 6.5.2.2/5 Se for feita uma tentativa de modificar o resultado de uma chamada de função ou de acessá-la após o próximo ponto de sequência, o comportamento é indefinido.
Eu não entendo onde diz sobre "próximo ponto de seqüência". Oque esta acontecendo aqui?