por
pobrecito hablador
el Lunes, 20 Julio de 2009, 16:23h
(#1160943)
Repetimos, sin desreferenciar un puntero nulo. int_handler es un puntero nulo y lo estás desreferenciando.
Un puntero nulo, según el estándar, es:
[#3] An integer constant expression with the value 0, or such an expression cast to type void * is called a null pointer constant.
Evidentemente INTERRUPCION_CUYO_NOMBRE_ME_LA_SUDA es una expresión constante entera de valor 0 (y quita la h del final, por favor).
Quizás confundes puntero nulo con puntero al que le asignas NULL. En realidad NULL debe ser lo mismo (salvo quizás un cast) que tu INTERRUPCION_CUYO_NOMBRE_ME_LA_SUDA
The macro NULL is defined in as a null pointer constant;
El estándar también dice:
Among the invalid values for dereferencing a pointer by the unary * operator are a null pointer, [...]
Invalido indica que un compilador conforme al estándar lo debería impedir/dar un error cuando lo intentas.
Otra regla más que viene al caso por la noticia:
[#9] An address constant is a null pointer, [...].
[The] -> operators [...] may be used in the creation of an address constant, but the value of an object shall not be accessed by use of these operators.
Así que el operador -> no debe hace una desreferenca como puede ser "*(int *0) = valor". De hecho "&((struct {int a;} *)0)->a" se lo debería tragar sin pestañear.
Re:Para mí eso un error de código
(Puntos:0)Un puntero nulo, según el estándar, es:
Evidentemente INTERRUPCION_CUYO_NOMBRE_ME_LA_SUDA es una expresión constante entera de valor 0 (y quita la h del final, por favor).Quizás confundes puntero nulo con puntero al que le asignas NULL. En realidad NULL debe ser lo mismo (salvo quizás un cast) que tu INTERRUPCION_CUYO_NOMBRE_ME_LA_SUDA
El estándar también dice:
Invalido indica que un compilador conforme al estándar lo debería impedir/dar un error cuando lo intentas.Otra regla más que viene al caso por la noticia:
Así que el operador -> no debe hace una desreferenca como puede ser "*(int *0) = valor". De hecho "&((struct {int a;} *)0)->a" se lo debería tragar sin pestañear.