Результаты поиска по запросу "undefined-behavior"

2 ответа

И «это дает ожидаемый результат» - не повод думать, что это определенное поведение. Возвращение того, что я ожидаю, является одним из возможных результатов неопределенного поведения.

аю этоответ [https://stackoverflow.com/a/4176333/6935629]о неопределенном поведении, где я увидел следующее утверждение: ++++++i; // UB, parsed as (++(++(++i)))Я не думаю, что это неопределенное поведение. У меня есть сомнения, действительно ли ...

5 ответов

Правда, я забыл, что он спрашивал конкретно об указателях.

овичок в C, я запутался, когда приведение указателя в порядке. Как я понимаю, вы можете в значительной степени привести любой тип указателя к любому другому типу, и компилятор позволит вам это сделать. Например: int a = 5; int* intPtr = &a; ...

7 ответов

Доступ к массиву за пределами в C и C ++

int data[8]; data[9] = 1;Что стандарт C ++ говорит об этом? Это неопределенное поведение? По крайней мере компилятор C (gcc -std = c99 -pedantic -W -Wall) ничего об этом не говорит. Благодарю.

ТОП публикаций

2 ответа

 также признайте, что качественные реализации должны пытаться поддерживать функции, которые некоторые неясные системы не могут.

спользованиеsem_post () в обработчике сигнала полагаться на неопределенное поведение? /* * excerpted from the 2017-09-15 Linux man page for sem_wait(3) * http://man7.org/linux/man-pages/man3/sem_wait.3.html */ ... sem_t sem; ... static void ...

6 ответов

Пример в «контенте сообщества» выглядит так, будто он взят из стандартного документа, но я не могу найти его ни в одном из имеющихся у меня документов ...

ошо осведомлен оРазница между классом и структурой [https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c] Однако, я изо всех сил пытаюсь убедительно сказать, правильно ли это определено: // declare foo (struct) ...

4 ответа

 и поэтому снимите чек

лкивался с нижеприведенной программой на C ++ (источник [https://ideone.com/7F88MV]): #include <iostream> int main() { for (int i = 0; i < 300; i++) std::cout << i << " " << i * 12345678 << std::endl; }Это похоже на простую программу и ...

2 ответа

@aschepler: Даже если это не ответ, интересно знать, что такие ошибки могут оставаться в вашем коде в течение десятилетия !! ... и с этой точки зрения, это ценный пост для этой темы. Кроме того, нет никакого ответа, кроме того, что это UB, который, кажется, даже этот ответ говорит.

л §3.9.1 / 6 из стандарта C ++ гласит: Значения типа bool либоtrue или жеfalse. Теперь рассмотрим этот код, void f(bool b) { switch(b) //since b is bool, it's value can be either true or false! { case true: cout << "possible value - true"; ...

4 ответа

Хотя разработчики компиляторов C настаивают на том, что для оптимизации необходим неограниченный UB, это было бы неверно для хорошо спроектированного языка вне некоторых узких обстоятельств.

современные компиляторы не достаточно умны, чтобы создавать быстрый и безопасный код одновременно? Посмотрите на код ниже: std::vector<int> a(100); for (int i = 0; i < 50; i++) { a.at(i) = i; } ... Очевидно, что ошибка вне диапазона никогда не ...

3 ответа

@BenVoigt Да, "мог" подходит здесь лучше, статический член все еще член

возник вопрос о том, почему это работает, когда указатель повис. Ответы были, что это UB, что означает, что это может работать или нет. Я узнал из учебника, что: #include <iostream> struct Foo { int member; void function() { std::cout ...

2 ответа

перешел в чат

я выполняю приведение типа Base к производному типу, но базовый тип не является экземпляром производного типа, а использует только результат, если он есть, получу ли я неопределенное поведение? Трудно понять, о чем я спрашиваю? взгляните на этот ...