LINUX.ORG.RU

История изменений

Исправление cvs-255, (текущая версия) :

В чем же UB? 0 - ничем с точки зрения языка не хуже любого другого указателя.

И если в адресном пространстве есть адрес 0, то даже сегфолта не будет.

например, на x86 в реальном режиме можно сделать что-то такое

class rm_interrupt {
    void (*handler)(void);
    public:
        void set_handler(void (*new_handler)(void)) {handler = new_handler;}
}
.....
void main(void)
{
    rm_interrupt *zero = 0;
    zero->set_handler(zero_int_hdl);
}

Исправление cvs-255, :

В чем же UB? 0 - ничем с точки зрения языка не хуже любого другого указателя.

И если в адресном пространстве есть адрес 0, то даже сегфолта не будет.

например, можно сделать что-то такое

class rm_interrupt {
    void (*handler)(void);
    public:
        void set_handler(void (*new_handler)(void)) {handler = new_handler;}
}
.....
void main(void)
{
    rm_interrupt *zero = 0;
    zero->set_handler(zero_int_hdl);
}

Исходная версия cvs-255, :

В чем же UB? 0 - ничем с точки зрения языка не хуже любого другого указателя.

И если в адресном пространстве есть адрес 0, то даже сегфолта не будет.

например, можно сделать что-то такое

class rm_interrupt {
    void (*handler)(void);
    public:
        void set_handler(void (*new_handler)(void)) {handler = new_handler;}
}
.....
void main(void)
{
    rm_interrupt *zero = 0;
    zero->set_handler(zero_int_hdl);
}
}