crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Litkevich Yuriy
  опции профиля:
сообщение 5.5.2008, 15:47
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


написал такой код:
#include <iostream>
using namespace std;
int main()
{
    int *pb;

    *pb=3;

    cout << *pb;
    delete pb;
    cout << *pb;
    *pb=4;
    cout << *pb;
    delete pb;
    cout << *pb;
  return 0;
}

указатель не инициализирован, delete два раза, а прога работает без ошибок :sad2:
компилер: MinGW
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 8.5.2008, 10:29
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Точно, не произойдёт, если только в stdin format-у не повалится какой-нибудь мусор типа "Y\n". :)

Ты чему возражаешь-то?
Тому, что поведение программы в случае UB неопределено?
Или тому, UB поведение может повредить что-нибудь в системе? :)

Или тому, что этот конкретный сценарий приведёт к ощутимым разрушениям?
Так можно и другой придумать.
Идея в том, что любой из них будет вероятен в случае UB.
И невозможно в общем случае предсказать что случится. :sad2:

Сообщение отредактировал Tonal - 8.5.2008, 10:31
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 11:27