после прочтения о точках последовательности, я узнал, что i = ++i
- undefined.
Итак, как насчет этого кода:
int i;
int *p = &i;
int *q = &i;
*p = ++(*q); // that should also be undefined right?
Скажем, если инициализация p и q зависит от некоторого (сложного) состояния. И они могут указывать на тот же объект, что и в предыдущем случае. Что случится? Если это undefined, какие инструменты мы можем использовать для обнаружения?
Изменить: Если два указателя не должны указывать на один и тот же объект, можем ли мы использовать C99? Это то, что означает "строгий"?