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

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

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

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

Почему эти конструкции используют pre- и неопределенное поведение post-increment?

#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 в 12:17
11
ответов

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

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

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

В чем разница между undefined, неуказанным и определенным поведением в C и С++?
задан 08 марта '10 в 0:10
22
ответов

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

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

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

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

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

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

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

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

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

Беззнаковое целочисленное переполнение хорошо определено как стандартами C, так и С++. Например, C99 standard (§6.2.5/9) указывает Вычисление с использованием неподписанных операндов никогда не может превышать поток, потому что результат, который н...
задан 12 авг. '13 в 23: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...
задан 19 июня '14 в 2:27
5
ответов

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

GCC 6 имеет новую функцию оптимизатора: предполагается, что this всегда не является нулевым и оптимизирует на основе этого. Распространение диапазона значений теперь предполагает, что этот указатель функций-членов С++ не равен нулю. Это устраняет...
задан 27 апр. '16 в 17: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 в 5:24
9
ответов

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

Я выследил чрезвычайно неприятную ошибку, скрывающуюся за этим маленьким драгоценным камнем. Я знаю, что в спецификации С++ подписанные переполнения - это поведение undefined, но только тогда, когда переполнение происходит, когда значение расширяетс...
задан 21 апр. '13 в 1: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...
задан 19 марта '10 в 2:20
8
ответов

Является ли "структурный хак" технически undefined поведением?

То, о чем я прошу, - это хорошо известный "последний член структуры с переменной длиной". Это происходит примерно так: struct T { int len; char s[1]; }; struct T *p = malloc(sizeof(struct T) + 100); p->len = 100; strcpy(p->s, "hello w...
задан 14 сент. '10 в 20:10