Результаты поиска по запросу "undefined-behavior"
И «это дает ожидаемый результат» - не повод думать, что это определенное поведение. Возвращение того, что я ожидаю, является одним из возможных результатов неопределенного поведения.
аю этоответ [https://stackoverflow.com/a/4176333/6935629]о неопределенном поведении, где я увидел следующее утверждение: ++++++i; // UB, parsed as (++(++(++i)))Я не думаю, что это неопределенное поведение. У меня есть сомнения, действительно ли ...
Правда, я забыл, что он спрашивал конкретно об указателях.
овичок в C, я запутался, когда приведение указателя в порядке. Как я понимаю, вы можете в значительной степени привести любой тип указателя к любому другому типу, и компилятор позволит вам это сделать. Например: int a = 5; int* intPtr = &a; ...
Доступ к массиву за пределами в C и C ++
int data[8]; data[9] = 1;Что стандарт C ++ говорит об этом? Это неопределенное поведение? По крайней мере компилятор C (gcc -std = c99 -pedantic -W -Wall) ничего об этом не говорит. Благодарю.
также признайте, что качественные реализации должны пытаться поддерживать функции, которые некоторые неясные системы не могут.
спользование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 ...
Пример в «контенте сообщества» выглядит так, будто он взят из стандартного документа, но я не могу найти его ни в одном из имеющихся у меня документов ...
ошо осведомлен оРазница между классом и структурой [https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c] Однако, я изо всех сил пытаюсь убедительно сказать, правильно ли это определено: // declare foo (struct) ...
и поэтому снимите чек
лкивался с нижеприведенной программой на C ++ (источник [https://ideone.com/7F88MV]): #include <iostream> int main() { for (int i = 0; i < 300; i++) std::cout << i << " " << i * 12345678 << std::endl; }Это похоже на простую программу и ...
@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"; ...
Хотя разработчики компиляторов C настаивают на том, что для оптимизации необходим неограниченный UB, это было бы неверно для хорошо спроектированного языка вне некоторых узких обстоятельств.
современные компиляторы не достаточно умны, чтобы создавать быстрый и безопасный код одновременно? Посмотрите на код ниже: std::vector<int> a(100); for (int i = 0; i < 50; i++) { a.at(i) = i; } ... Очевидно, что ошибка вне диапазона никогда не ...
@BenVoigt Да, "мог" подходит здесь лучше, статический член все еще член
возник вопрос о том, почему это работает, когда указатель повис. Ответы были, что это UB, что означает, что это может работать или нет. Я узнал из учебника, что: #include <iostream> struct Foo { int member; void function() { std::cout ...
перешел в чат
я выполняю приведение типа Base к производному типу, но базовый тип не является экземпляром производного типа, а использует только результат, если он есть, получу ли я неопределенное поведение? Трудно понять, о чем я спрашиваю? взгляните на этот ...