Лучшие undefined-behavior вопросы ИТ разработчиков

  • 18 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Порядок оценки и неопределенное поведение

Говоря в контексте стандарта C ++ 11 (который, как вы знаете, больше не имеет понятия точек последовательности), я хочу понять, как определяются два простейших примера. int i = 0; i = i++; // #0 i = ++i; // #1В SO есть две темы, которые ...

Задан 01 Jul 2013, 08:26 от Kolyunya
  • 6 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Является ли сравнение указателей неопределенным или неопределенным поведением в C ++?

3-е издание Струструпа, язык программирования C ++, говорит, чтоВычитание указателей определяется только тогда, когда оба указателя указывают на элементы одн...

Задан 02 Aug 2015, 17:37 от Destructor
  • 11 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Это хорошо определенное поведение, чтобы выйти из программы перед основной?

Определенно возможно выполнить код раньшеmain называется, как видно из многих примеров вэтот вопрос [https://stackoverflow.com/questions/9439871/can-you-print-anything-in-c-before-entering-into-the-main-function] . Тем не менее, что если в этом ...

Задан 03 Nov 2012, 23:48 от chris
  • 30 голосов
  • 5 ответов
  • 0 просмотров
5 ответов

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

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

Задан 26 Jan 2011, 21:48 от sleske
  • 6 голосов
  • 0 ответов
  • 0 просмотров
0 ответов

Есть ли причина для отрицательного голосования?

отрим программу ниже char str[5]; strcpy(str,"Hello12345678"); printf("%s",str);При запуске эта программа выдает ошибку сегментации. Но когда strcpy заменяется следующим, программа работает нормально. strcpy(str,"Hello1234567");Поэтому вопрос ...

Задан 05 Apr 2009, 07:02 от anand
  • 10 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

Использование this.var во время инициализации var [duplicate]

На этот вопрос уже есть ответ здесь: Рекурсивный инициализатор работает, когда я добавляю «это»? [/questions/15820302/recursive-initializer-works-when-i-add-this] 3 ответаВо время исследованияДругой ...

Задан 05 Apr 2013, 08:18 от NPE
  • 9 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Почему char * вызывает неопределенное поведение, а char [] нет?

Попытка изменить строковый литерал приводит к неопределенному поведению: char * p = "wikipedia"; p[0] = 'W'; // undefined behaviourОдин из способов предотвратить это - определить его как массив вместо указателя: char p[] = "wikipedia"; p[0] = ...

Задан 28 Nov 2011, 21:05 от Terry Li
  • 3 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

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

Как видно из названия: Почему вызов не виртуальной функции-члена для удаленного указателя является неопределенным поведением? Обратите внимание, что Вопрос не спрашивает, является ли это неопределенным поведением, он спрашиваетПочемуэто ...

Задан 23 Dec 2012, 16:11 от Alok Save
  • 17 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

Может ли объект, выделенный в куче, быть константным в C ++?

В C ++ объект, выделенный из стека, может быть объявленconst: const Class object;после этого попытка вызова неконстантного метода для такого объекта является неопределенным поведением: const_cast<Class*>( &object )->NonConstMethod(); //UBМожет ...

Задан 18 Dec 2009, 10:45 от sharptooth
  • 15 голосов
  • 8 ответов
  • 0 просмотров
8 ответов

Если у вас есть указатель, который все еще находится в области видимости после удаления, вызванного через него, хорошей идеей будет установить его в nul. Таким образом, вы гарантированно получите какой-то сбой, если будете использовать его снова. Пока вы исследуете эту тему, взгляните на ССЫЛКИ и АВТОПОИНТЕРЫ, поскольку они могут спасти вам часть этого горя. (Kerrek SB прав в том, что деструктор вызывается слишком для типов объектов.)

му, чтобы лучше понять новое / удалить (на самом деле, чтобы доказать себе на небольших примерах, зачем нужны виртуальные деструкторы для интерфейсов), я хочу понять утечки памяти, чтобы жить в страхе перед ними. Но мне трудно, так сказать, ...

Задан 06 Aug 2011, 10:57 от Jimmy
  • 23 голосов
  • 7 ответов
  • 0 просмотров
7 ответов

Как правильно набирать поплавок для типа int и наоборот?

Код ниже выполняет быструю операцию обратного квадратного корня с помощью некоторых битовых хаков. Алгоритм, вероятно, был разработан Silicon Graphics в начале 1990-х годов и появился в Quake 3.больше ...

Задан 22 Jul 2013, 14:18 от plasmacel
  • 4 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Очки последовательности и порядок оценки

Я читал K & R и наткнулся на этот пример о неопределенности в поведении, оценивая выражение какa[i]=i++; Спецификация C99 в $ 6.5.2 говорит, что Между предыдущей и следующей точкой последовательности объект должен иметь свое сохраненное ...

Задан 30 Jan 2012, 07:42 от Bazooka
  • 13 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Применимо ли неопределенное поведение к ассемблерному коду?

Допустим, вы знаете, что ваше программное обеспечение будет работать только на двух дополнительных компьютерах, где поведение переполнения со знаком хорошо о...

Задан 01 Mar 2016, 18:31 от Eloff
  • 32 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

 функция делает.

отрим следующий код: int a[25][80]; a[0][1234] = 56; int* p = &a[0][0]; p[1234] = 56;Вызывает ли вторая строка неопределенное поведение? Как насчет четвертой строки?

Задан 01 Sep 2011, 10:35 от fredoverflow
  • 11 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

C - неопределенное значение неопределимо?

Согласно этомуПочта [https://stackoverflow.com/questions/13423673/what-is-indeterminate-value] неопределенное значение: 3.17.2 1 indeterminate value either an unspecified value or a trap representationСогласно Google, определение ...

Задан 30 Jun 2013, 21:13 от dtech
  • 3 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

[] приоритет над * оператором

Где-то в моем коде я делаю что-то очень плохое. Я получаю неопределенное поведение в своей переменной extrema, когда она работает, но в большинстве случаев она даже не запускается. Любая помощь будет очень полезна. #include <stdio.h> void ...

Задан 20 Aug 2013, 15:24 от eatonphil
  • 6 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Почему мы можем писать вне границ в C?

Недавно я закончил читать о виртуальной памяти, и у меня возник вопрос о том, как malloc работает в виртуальном адресном пространстве и физической памяти.Нап...

Задан 19 Mar 2015, 02:34 от Arrow
  • 11 голосов
  • 10 ответов
  • 0 просмотров
10 ответов

Как определить неопределенное поведение

Есть ли способ узнать, имеет ли ваша программа неопределенное поведение на C ++ (или даже C), если не считать запоминания всей спецификации?Причина, по котор...

Задан 10 Jun 2010, 15:52 от BlueRaja - Danny Pflughoeft
  • 4 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Индексная переменная (_i) для циклов?

Взгляните на этот простой код: eat = (x) -> console.log "nom", x # dog only eats every second cat feast = (cats) -> eat cat for cat in cats when _i % 2 == 0 feast ["tabby cat" "siamese cat" "norwegian forest cat" "feral cat" "american bobtail" ...

Задан 04 Nov 2013, 04:01 от Dog
  • 4 голосов
  • 2 ответа
  • 0 просмотров
2 ответа

Что означает код «* ((char *) - 1) = 'x';»?

У меня была проблема с чтением исходного кода Redis, может кто-нибудь сказать мне, как использовать последний оператор в

Задан 30 Dec 2013, 17:00 от dereky
  • 5 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

Это избегает UB

Этот вопрос носит скорее академический характер, поскольку нет веской причины для написания своего

Задан 22 Apr 2015, 08:07 от Elias Van Ootegem
  • 3 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Что будет возвращать функция, если явного возврата нет [duplicate]

На этот вопрос уже есть ответ здесь: Что (на самом деле) происходит, когда вызывается функция с предупреждением «управление достигает конца недействительной ...

Задан 15 May 2013, 11:47 от linusz
  • 15 голосов
  • 5 ответов
  • 0 просмотров
5 ответов

Распространяется ли «неопределенное поведение» на время компиляции?

Мы все слышали предупреждения о том, что если ты вызовешь неопределенное поведение в C или C ++,ничего вообщ может случиться Это ограничено любое поведение во время выполнения, или это также включает в себя поведение во время компиляции? В ...

Задан 18 Jul 2012, 16:36 от HighCommander4
  • 60 голосов
  • 1 ответ
  • 0 просмотров
1 ответ

Изменился ли стандарт C ++ относительно использования неопределенных значений и неопределенного поведения в C ++ 14?

Как описано вВлечет ли инициализация преобразование lvalue в rvalue? Является

Задан 01 May 2014, 20:04 от Shafik Yaghmour
  • 13 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Является ли это четко определенным / законным для размещения новых несколько раз по одному и тому же адресу?

(Примечание: этот вопрос был мотивирован попыткой создать хакерскую обработку препроцессора, чтобы сгенерировать неоперативное распределение, чтобы ответить на этот другой вопрос: Макрос, который принимает новый ...

Задан 23 Sep 2011, 04:30 от HostileFork
  • 16 голосов
  • 6 ответов
  • 0 просмотров
6 ответов

'A [i] = i;' всегда приводить к четко определенному поведению?

Есть несколько интересных вопросовВот [https://stackoverflow.com/q/9056072/113124]относительно неопределенного поведения в C. Один из них (слегка измененный) Приводит ли следующий фрагмент кода к неопределенному поведению? int i = 0, *a = &i; ...

Задан 04 Mar 2012, 15:35 от Lazer
  • 63 голосов
  • 4 ответа
  • 0 просмотров
4 ответа

Является ли целочисленное переполнение со знаком все еще неопределенным поведением в C ++?

Как мы знаем,целочисленное переполнение со знаком - неопределенное поведение [https://stackoverflow.com/questions/4240748/allowing-signed-integer-overflows-in-c-c] , Но есть кое-что интересное в C ++ 11cstdint документация: целочисленный тип со ...

Задан 24 Apr 2013, 09:24 от Archie
  • 28 голосов
  • 3 ответа
  • 0 просмотров
3 ответа

Так почему же i = ++ i + 1 четко определено в C ++ 11?

Я виделДругие [https://stackoverflow.com/q/1860461/150634]аналогичныйвопросов [https://stackoverflow.com/q/4336860/150634]и читатьдефект [http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#637]об этом. Но я до сих пор не понимаю. ...

Задан 22 Dec 2012, 18:42 от Joseph Mansfield
Page 1 of 6
1 2 3 4 5