Результаты поиска по запросу "undefined-behavior"
Учитывая состояние стека и регистров, можем ли мы предсказать результат неопределенного поведения printf
Вот простой код на C для теста класса:
Арифметическое смещение вправо дает фиктивный результат?
Я должен быть абсолютно сумасшедшим здесь, ноgcc 4.7.3 на моей машине дает самый абсурдный результат. Вот точный код, который я тестирую: #include <iostream> using namespace std; int main(){ unsigned int b = 100000; cout << (b>>b) << endl; b = b ...
Очки последовательности и побочные эффекты: тихие изменения в C11?
C99 §6.5Выражения (1) Выражение - это последовательность операторов и операндов, которая задает вычисление значения, или которая обозначает объект или функцию, или которая генерирует побочные эффекты, или которая выполняет их комбинацию. (2) ...
Используя вновь объявленную переменную в инициализации (int x = x + 1)?
Я просто наткнулся на поведение, которое удивило меня: При написании: int x = x+1;в C / C ++ - программе (или даже более сложном выражении, включающем только что созданную переменную x), мой gcc / g ++ компилируется без ошибок. В приведенном ...
@ Тони: Честная точка зрения. Это действительно имеет смысл. Спасибо.
я сделаю: const char* const_str = "Some string"; char* str = const_cast<char*>(const_str); // (1) str[0] = "P"; // (2)Где (какая строка) точно находится неопределенное поведение? Я много искал это на SO, но не нашел ни однозначного и точного ...
Как я могу преобразовать произвольный double в целое число, избегая неопределенного поведения?
Допустим, у меня есть функция, которая принимает 64-разрядное целое число, и я хочу вызвать ее с
v - это двумерный массив. Поскольку вы ссылаетесь только на одно измерение, то в итоге вы получаете указатель char на базовый массив, и, следовательно, этот оператор пытается присвоить константу char указателю char. Вы можете использовать двойные кавычки, чтобы заменить константу на строку в стиле C, или вы можете явно ссылаться на v [i] [0], что я и предполагал.
еопределенное поведение, если я прохожу элементы 2D-массива следующим образом? int v[5][5], i; for (i = 0; i < 5*5; ++i) { v[i] = i; }Опять же, это даже компилируется? (Я не могу попробовать это прямо сейчас, я не дома.) Если это не так, то ...
Теперь, если это язык, который определяет, что левая сторона (или правая сторона) всегда должна выполняться первой, то поведение больше не будет неопределенным.
вопрос связан с моим предыдущимпроблема [https://stackoverflow.com/questions/5294660/explain-working-of-this-c-program], Ответ, который я получил, был«Это неопределенное поведение». Пожалуйста, кто-нибудь объяснить: Что такое неопределенное ...