LINUX.ORG.RU

выскажите мнение о фазах луны в С/С++

 


0

1

привет.

спор возник, на тему того, почему программа, в которой использование висячего указателя раньше не валило программу, а сейчас валит.

мне-то все понятно, но коллега не верит что это может произойти просто из-за фазы луны, не говоря уже про смену железа/компилятора/версию ОСи, етц...

и да, программа имеет отчасти асинхронную природу. и да, недавно программа переехала на более мощный сервер.

спасибо.

★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Почему то, когда прочитал про висячий указатель, подумал о висячих родинках. Вроде бы живет себе спокойно, но потом чем то её задеваешь и может начаться процесс воспаления, и в худшем случае это может привести к раку.

Избавляйтесь от висячих родинок, ну и указателей тоже.

frugurt
()
Ответ на: комментарий от Eddy_Em

Стандард говорит, что инкремент не является точкой следования, и в пределах одной точки следования может выполняться в любой удобный для компилятора момент. Поэтому, даже код

void foo(int a, int b) {
    cout << a << endl << b << endl;
}

void main() {
    int i = 0;
    foo(++i, ++i);//UB
    int j = 1;
    j = j++;//UB

}

приводит к U(ndefined)B.

batbko
()

фаза Луны, смена железа/компилятора/версию ОСи, етц... - это твое объяснение. А как объяснял коллега, который не верит твоим объяснениям? Просто интересно.

conalex ★★★
()

зачем ты это запостил сюда?

Пиши докладную записку менеджеру (или кто у вас принимает кадровые решения). Ведь если очередной опус этого ламера где-то взорвётся, то лишат премии (или какие у вас кнуты/пряники) всех.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.