Вопросы с тегом 'undefined-behavior'

Непредсказуемый результат компиляции или выполнения программы, нарушающей правила языка, не должен выполняться ни компилятором, ни интерпретатором, ни системой исполнения.
6

Undefined поведение и точки последовательности

Что такое "точки последовательности"? Какова связь между поведением undefined и точками последовательности? Я часто использую смешные и запутанные выражения типа a[++i] = i;, чтобы заставить себя чувствовать себя лучше. Почему я должен прекратить...
14 нояб. '10 в 5:37
15

Почему эти конструкции используют неопределенное поведение до и после приращения?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++); printf("%d\n", i); // 2 Should be 1, no ? volatile int u = 0; u = u++ + ++u; printf("%d\n", u); // 1 u = 1...
04 июн. '09 в 9:17
11

Что такое строгое правило сглаживания?

Когда вы спрашиваете о общем поведении undefined в C, души более просвещены, чем я говорил о правиле строгого псевдонимов. О чем они говорят?
19 сент. '08 в 1:30
9

Undefined, неопределенное и определяемое реализацией поведение

В чем разница между undefined, неуказанным и определенным поведением в C и С++?
07 мар. '10 в 21:10
6

Допускает ли стандарт C++ неинициализированный bool для сбоя программы?

Я знаю, что "неопределенное поведение" в C++ может позволить компилятору делать все, что он хочет. Однако у меня произошел сбой, который удивил меня, так как я предположил, что код был достаточно безопасным. В этом случае настоящая проблема возникл...
10 янв. '19 в 1:39
22

Неинициализированная локальная переменная - самый быстрый генератор случайных чисел?

Я знаю, что неинициализированная локальная переменная - это поведение undefined (UB), а также значение может иметь ловушечные представления, которые могут повлиять на дальнейшую работу, но иногда я хочу использовать случайное число только для визуал...
31 июл. '15 в 6:52
11

Почему поведение f (i = -1, я = -1) undefined?

Я читал о порядке нарушений оценок, и они приводят пример, который меня озадачивает. 1) Если побочный эффект скалярного объекта не секвенирован относительно другого побочного эффекта на том же скалярном объекте, поведение undefined. // snip f(i =...
10 февр. '14 в 6:31
14

Почему это для выхода цикла на некоторых платформах, а не на других?

Недавно я начал изучать C, и я занимаюсь классом с C в качестве темы. Я сейчас играю с циклами, и я сталкиваюсь с каким-то странным поведением, которое я не знаю, как объяснить. #include <stdio.h> int main() { int array[10],i; for (i = 0...
24 июн. '15 в 2:34
11

Каковы все общие типы поведения undefined, о которых должен знать программист на С++?

Каковы все общие поведения undefined, о которых должен знать программист на С++? Скажите, например: a[i] = i++;
15 дек. '08 в 6:55
5

Почему неподписанное целочисленное переполнение определенного поведения, но недопустимое целочисленное число целых чисел?

Беззнаковое целочисленное переполнение хорошо определено как стандартами C, так и С++. Например, C99 standard (§6.2.5/9) указывает Вычисление с использованием неподписанных операндов никогда не может превышать поток, потому что результат, который н...
12 авг. '13 в 20:04
5

Почему этот цикл создает "предупреждение: итерация 3u вызывает undefined поведение" и выводит более 4 строк?

Компиляция: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } и gcc выдает следующее предупреждение: warning: iteration 3u invokes undefined behavior [-Waggres...
18 июн. '14 в 23:27
5

Почему улучшенный оптимизатор GCC 6 нарушает практический код на С++?

GCC 6 имеет новую функцию оптимизатора: предполагается, что this всегда не является нулевым и оптимизирует на основе этого. Распространение диапазона значений теперь предполагает, что этот указатель функций-членов С++ не равен нулю. Это устраняет...
27 апр. '16 в 14:45
6

Почему целочисленное переполнение на x86 с GCC вызывает бесконечный цикл?

Следующий код переходит в бесконечный цикл на GCC: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0...
07 окт. '11 в 2:24
9

Как я получил значение размером более 8 бит от 8-битного целого?

Я выследил чрезвычайно неприятную ошибку, скрывающуюся за этим маленьким драгоценным камнем. Я знаю, что в спецификации С++ подписанные переполнения - это поведение undefined, но только тогда, когда переполнение происходит, когда значение расширяетс...
20 апр. '13 в 22:02
2

Когда вызов функции-члена в экземпляре null приводит к поведению undefined?

Рассмотрим следующий код: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): void baz() { x = 5; } int x; }; int main() { foo* f = 0; f->ba...
18 мар. '10 в 23:20