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

6 ответов

 утверждают, что ни явно, ни неявно. Поправь меня, если я ошибаюсь.

р из реализации MSVC: #define offsetof(s,m) \ (size_t)&reinterpret_cast<const volatile char&>((((s *)0)->m)) // ^^^^^^^^^^^Как можно видеть, он разыменовывает нулевой указатель, который обычно вызывает неопределенное поведение. Это исключение из ...

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" ...

5 ответов

или повысить способ:

int& fun() { int * temp = NULL; return *temp; }еупомянутом методе я пытаюсь разыменовать нулевой указатель. Когда я вызываю эту функцию, она не дает исключения. Я обнаружил, что когда возвращаемый тип по ссылке, он не дает исключения, если он по ...

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

12 ответов

http://www.codeproject.com/KB/system/soviet_kernel_hack.aspx

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

4 ответа

 подчеркивания. Оставьте это продавцам, чтобы сделать это сложным. Обязательно так, стандарт любопытный.

олагается, что эта быстрая сортировка сортирует «v [left] ... v [right] в порядке возрастания»; Скопировано (без комментариев) из языка программирования C от K & R (второе издание): void qsort(int v[], int left, int right) { int i, last; void ...

8 ответов

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

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

2 ответа

Программа не вылетала при переполнении буфера

Я хочу прочитать строку с клавиатуры и сохранить вbuf , Я установилchar buf[6] массив, этот массив не может хранить 5 символов и\0 . Тогда я печатаю123 456 789 он содержит 11 символов и\0 , программа все еще может работать, но если я наберу ...

3 ответа

@ Фред нет. они заменили его, потому что хотят изменить его на определенное поведение в долгосрочной перспективе (post-c ++ 0x) и хотели получить лучший пример неопределенного поведения.

я на самом деле не обращаюсь к разыменованному «объекту», разве разыменование нулевого указателя остается неопределенным? int* p = 0; int& r = *p; // undefined? int* q = &*p; // undefined?Несколько более практичный пример: можно ли разыменовать ...

0 ответов

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

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

6 ответов

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

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