0
ответов

Является ли доступ к данным вне массива некорректным, если вы его не используете?

В алгоритме, который я пишу, я могу иметь следующий (конечно, упрощенный) int a [3 ] = {1,2,3}; int b = a [3]; когда индекс, используемый для заполнения b, переполняется, я никогда не использую значение b. Код все еще ...
вопрос задан: 4 July 2011 14:42
0
ответов

Ошибка в примере быстрой сортировки (книга K&R C)?

Эта быстрая сортировка должна сортировать "v [слева] ... v [справа] в порядке возрастания "; скопировано (без комментариев) из языка программирования C от K&R (второе издание): void qsort (int v [], int left, int ...
вопрос задан: 26 June 2011 21:52
0
ответов

Вызывает ли макрос offsetof из неопределенное поведение?

Пример из реализации MSVC: #define offsetof (s, m) \ (size_t) & reinterpret_cast ((((s *) 0) -> m)) // ^^^ ...
вопрос задан: 21 June 2011 23:48
0
ответов

Не определено ли поведение при удалении указателя null void *?

Я знаю, что удаление нулевого указателя не работает: в любом из вариантов, если значение операнда удаления - нулевой указатель, операция не имеет никакого эффекта. (Стандарт C ++ 5.3.5 [expr.delete] p2) ...
вопрос задан: 30 May 2011 13:52
0
ответов

Code crashes when derived class' destructor is virtual and base class' dtor is not

I tried the following code on gcc 4.4.5. If the member 'data' is not present, the code executes fine, but in its presence, it crashes. It also doesn't crash when the derived class' dtor is not ...
вопрос задан: 27 May 2011 16:57
0
ответов

Создает ли этот код неопределенное поведение или это просто Unspecified Behavior?

Допустим, у нас есть две единицы компиляции, а именно: // a.cpp extern int value2; int значение1 = значение2 + 10; // b.cpp extern int value1; int значение2 = значение1 + 10; Когда я попробовал его на VC2010, он ...
вопрос задан: 13 May 2011 02:28
0
ответов

Вызывает ли это неопределенное поведение?

Рассмотрим следующую программу на C: #include int main () { int a = -1; беззнаковый b = -1; if (a == b) printf ("% d% d", a, b); else printf ("Неравно"); возврат 0; } ...
вопрос задан: 1 May 2011 21:57
0
ответов

Где поведение undefined при использовании const_cast <>?

Если я это сделаю: const char * const_str = "Некоторая строка"; char * str = const_cast (const_str); // (1) str [0] = "P"; // (2) Где (в какой строке) находится неопределенное поведение? Я был ...
вопрос задан: 4 April 2011 07:54
0
ответов

Развлечения с неинициализированными переменными и компилятором (GCC)

В разделе §3.9.1 / 6 стандарта C ++ говорится: «Значения типа bool либо истинны, либо ложны. Теперь рассмотрим этот код, void f (bool b) В 1/6 стандарта C ++ говорится: «Значения типа bool либо истинны, либо ложны». Теперь рассмотрим этот код, void f (bo
вопрос задан: 13 February 2011 19:26
0
ответов

sizeof(“”+0) != sizeof(char *) Bug or undefined behaviour?

The following C program: #include int main(void) {printf ("% u% u% u \ n", sizeof "", sizeof ("" + 0), sizeof (char *)); возврат 0; } outputs 1 4 4 when compiled with GCC on Linux, but ...
вопрос задан: 1 February 2011 12:26
0
ответов

В C, если я приведу и разыменую указатель, имеет ли значение, какой из них я сделаю первым?

В C вы можете приводить как простые типы данных, такие как int, float, так и указатели на них . Я бы предположил, что если вы хотите преобразовать указатель на один тип в значение другого типа (например ...
вопрос задан: 8 January 2011 14:14
0
ответов

Возвращает ли структура, объявленная вперед, неопределенное поведение?

У меня есть следующий код (для простоты include-guards опущены): = foo.hpp = struct FOO {int not_used_in_this_sample; int not_used_in_this_sample2; }; = main.cpp = #include "...
вопрос задан: 30 November 2010 10:37
0
ответов

Имеет ли эта инициализация const с помощью const_cast неопределенное поведение?

Согласно моим небольшим тестам, этот код работает. Но есть ли у него неопределенное поведение? Объект const с помощью const_cast привел к нарушениям доступа во время выполнения в моих предыдущих тестах, ...
вопрос задан: 28 November 2010 08:34
0
ответов

Где именно стандарт C ++ скажем, разыменование неинициализированного указателя является неопределенным поведением?

Пока я не могу найти, как вывести следующее: int * ptr; * ptr = 0; неопределенное поведение. Прежде всего, там 5.3.1 / 1 говорится, что * означает косвенное обращение, которое преобразует T * в T. Но это ...
вопрос задан: 26 November 2010 14:01
0
ответов

Функция, объявленная как возвращающая int, ничего не возвращает. Является ли это неопределенным поведением?

Это допустимая функция в C ++: int f () {если (ложь) {возврат 42; } } Следующее определение вызывает UB: int x = f (); // используемое возвращаемое значение Вопрос: Выполняется ли следующее ...
вопрос задан: 3 November 2010 18:25
0
ответов

const_cast и UB

$ 5.2.11 / 7 - "[Примечание: в зависимости от типа объекта операция записи через указатель, lvalue или указатель на элемент данных результат const_cast, который отбрасывает const -...
вопрос задан: 28 October 2010 11:55
0
ответов

Является ли «взлом структуры» технически неопределенным поведением?

Я спрашиваю о хорошо известном трюке «последний член структуры имеет переменную длину» . Это выглядит примерно так: struct T {int len; char s [1]; Это выглядит примерно так: struct T {int len; char s [1]; Это выглядит примерно так: struct T {int len; cha
вопрос задан: 17 October 2010 06:47
0
ответов

В C99 f () + g () не определено или просто не указано?

Раньше я думал, что в C99, даже если побочные эффекты функций f и g мешают, и хотя выражение f () + g () не содержит точки последовательности, f и g будут содержать некоторые, поэтому ...
вопрос задан: 16 October 2010 11:16
0
ответов

Is i + = + + i неопределенное поведение в C ++ 0x?

Я очень убежден в найденном мной объяснении, в котором говорится, что i = ++ i не является неопределенным в отношении C ++ 0x, но я не в состоянии судить, является ли поведение i + = ++ i хорошо определенным или ...
вопрос задан: 14 October 2010 12:34
0
ответов

Является символом без знака a [4] [5]; а [1] [7]; неопределенное поведение?

Один из примеров неопределенного поведения из стандарта C гласит (J.2): - Индекс массива вне допустимого диапазона, даже если объект явно доступен с данным индексом (как в .. .
вопрос задан: 22 September 2010 03:15
0
ответов

Явно звонящий деструктор приводит к Неопределенному Поведению здесь?

По-моему, следующий код (от некоторого вопроса о C++) должен привести к UB, но это кажется, что это не. Вот код: #include <iostream> использование станд. пространства имен; класс некоторые {общественность: ~some () {...
вопрос задан: 20 July 2010 15:47