Cita de: "su -" Ahora, yo no se de C/C++ asi que como dice Radical, no me peguen Código: Text #include <stdio.h> void main(){ int numeros[]= { 1, 2, 3, 4, 5, 6 }; int i = 0; printf("NULL: %d ", numeros[(int)NULL]); printf("Con i: %d ", numeros[i]);} Asi da compilado en C y C++: "NULL: 1 Con i: 1"
Ahora, yo no se de C/C++ asi que como dice Radical, no me peguen
NULL es 0 un espacio definido por el compilador que puede ser modificado por el programador para apuntar hacia donde le pege la gana, aunque eso es 'romper' el estandar pero es posible hacer que null no sea 0
osea no llegamos a nada NULL es 0 un espacio definido por el compilador que puede ser modificado por el programador para apuntar hacia donde le pege la gana, aunque eso es 'romper' el estandar pero es posible hacer que null no sea 0
Que raro, a mi me dice que NULL no es un entro, no compila, defini NULL (no se si deba) asi:Código: Text#include <stdio.h> #define NULL (char *)0) /* no se si este bien */ void main(){ int numeros[]= { 1, 2, 3, 4, 5, 6 }; int i = 0; printf("NULL: %d ", numeros[(int)NULL]); printf("Con i: %d ", numeros[i]);} Y Dice (GCC 4.1.1)In file include from /usr/include/_G_confi.h:14,from /usr/include/libio.h:32, from /usr/include/stdio.h:72, from test.c:1/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h:402:1:1 warning: this is the location of the previous deinitiontest.c: In function 'main':test.c:10: error: array subscript is not an integer
CUALQUIER compilador de C y C++ que se precie seguira el standard, especialmente en cosas tan simples.
Cita de: "Eternal Idol" Cita de: "su -" Ahora, yo no se de C/C++ asi que como dice Radical, no me peguen Código: Text #include <stdio.h> void main(){ int numeros[]= { 1, 2, 3, 4, 5, 6 }; int i = 0; printf("NULL: %d ", numeros[(int)NULL]); printf("Con i: %d ", numeros[i]);} Asi da compilado en C y C++: "NULL: 1 Con i: 1" Que raro, a mi me dice que NULL no es un entro, no compila, defini NULL (no se si deba) asi:Código: Text#include <stdio.h> #define NULL (char *)0) /* no se si este bien */ void main(){ int numeros[]= { 1, 2, 3, 4, 5, 6 }; int i = 0; printf("NULL: %d ", numeros[(int)NULL]); printf("Con i: %d ", numeros[i]);} Y Dice (GCC 4.1.1)In file include from /usr/include/_G_confi.h:14,from /usr/include/libio.h:32, from /usr/include/stdio.h:72, from test.c:1/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h:402:1:1 warning: this is the location of the previous deinitiontest.c: In function 'main':test.c:10: error: array subscript is not an integer
Cita de: "Eternal Idol" CUALQUIER compilador de C y C++ que se precie seguira el standard, especialmente en cosas tan simples. lo que pasa es que ese 'que se precie' es un juicio de cada cual, proque el que lo quiera hacer diferente es libre de hacerlo... incluso un compilador hecho pro estudiantes sin necesidad de que 'se precie' puede escoger usar NULL como 0
Aun asi, aunque este definido en stdio GCC no lo ve como un numero entero, Radical le da el mismo error.
Cita de: "su -" Aun asi, aunque este definido en stdio GCC no lo ve como un numero entero, Radical le da el mismo error. Por que no es un entero, es un puntero.
Cita de: "JuanK" Cita de: "Eternal Idol" CUALQUIER compilador de C y C++ que se precie seguira el standard, especialmente en cosas tan simples. lo que pasa es que ese 'que se precie' es un juicio de cada cual, proque el que lo quiera hacer diferente es libre de hacerlo... incluso un compilador hecho pro estudiantes sin necesidad de que 'se precie' puede escoger usar NULL como 0 Si, PERO NO SERIA STANDARD, que es lo que afirmaste en el otro hilo. NO SERIA STANDARD.Te invito a dejar la necedad y RAZONAR, deja de hacer el ridiculo:Esto es lo que dijiste primero:Macro NULL ANSI C#define NULLUn puntero nulo constante definido según la implementación.Esto es de tu pagina http://www.greenend.org.uk/rjk/2001/02/cfu.html:The standard says:An integral constant expression with the value 0, or such an expression cast to void *, is called a null pointer constant. If a null pointer constant is assigned to or compared for equality to a pointer, the constant is converted to a pointer of that type. Such a pointer, called a null pointer, is guaranteed to compared unequal to a pointer to any object or function.¿Que es un puntero nulo constante segun el standard? Una expresion constante cuyo valor es 0. ¿Lo entendes o no sos capaz?
Solo te duele no tener la razón.cada cual que defina por si mismo que es que... para mi no quedo definido nada de lo que tu dices, pero tampoco lo que yo dije... el estándar o no es claro o esta libre a como lo quiera hacer cada cual.
por el momento al menos no he visto en ningún lugar de ANSI C que diga que NULL DEBE ser 0...Dice que :Un puntero nulo constante definido según la implementación.
Disculpen, pero creo que los menajes de "yo tengo la razon y tu no" van mejor por MP no me pelen, solo sugiero, es que asi el foro se ve sucio, que se puede esperar de un lugar que hablan y hablan de difernecias en "peleas" por algo que no debe...Lo sugiero para que se tenga que cerrar esto...
Bueno...http://c-faq.com/null/nullor0.html
Programming style, like writing style, is somewhat of an art and cannot be codified by inflexible rules, although discussions about style often seem to center exclusively around such rules.
17.10:CitarProgramming style, like writing style, is somewhat of an art and cannot be codified by inflexible rules, although discussions about style often seem to center exclusively around such rules.Ademas no creo que se puede poner un estandar ya que NULL se puede usar como un numeral y no como un numero... eso creo no se.