C con clase:CitarMacro NULL ANSI C#define NULLUn puntero nulo constante definido según la implementación.Ejemplo:#define NULL 0 DJGPP#define NULL 0ó#define NULL 0Ló#define NULL ((void *)0) Borland#define NULL ((void*0) /* Para C++ */ Dev-C++
Macro NULL ANSI C#define NULLUn puntero nulo constante definido según la implementación.Ejemplo:#define NULL 0 DJGPP#define NULL 0ó#define NULL 0Ló#define NULL ((void *)0) Borland#define NULL ((void*0) /* Para C++ */ Dev-C++
Yo no hago perder el tiempo... cada cual pierde el tiempo como quiere
Numero en la posicion 0 es: 1
en español la palabra es Estándar
A veces null es 0 pero a veces no por ejemplo
Error 1 error C2107: illegal index, indirection not allowed
o por ejemplo en un arreglo puedo hacer esto?numeros[5]={1,2,3,4,5,6};printf ("Numero en la posicion 0 es:",numeros[NULL]);CitarNumero en la posicion 0 es: 1
NULL actualmente es y sera '0', pero si alguién lo cambia puede apuntar donde quiera.
Mentira, haciendolo bien tenes tu 1 en pantalla:Código: Text #include <stdio.h> void main(){ int numeros[]={1,2,3,4,5,6}; printf ("Numero en la posicion 0 es: %d",numeros[NULL]); }
Cita de: "RadicalEd" NULL actualmente es y sera '0', pero si alguién lo cambia puede apuntar donde quiera. Si, puede ser cambiado PERO y es un gran pero, quebrarias el standard.
pointer.c: En la función `main':pointer.c:5: error: array subscript is not an integer
MENTIRA!!!!tal como esta mostrado no compila.primero que todo porque el arreglo es de 5 y esta llenado con 6... Y segundo aun si se soluciona eso bota el error que dije.
Mira estos errores:Citarpointer.c: En la función `main':pointer.c:5: error: array subscript is not an integer
Con cl archivo.cpp compila perfectamente.
C:\Documents and Settings\jruiz\Escritorio>cl code.cMicrosoft ® 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86Copyright © Microsoft Corporation. All rights reserved.code.ccode.c(6) : error C2107: illegal index, indirection not allowedC:\Documents and Settings\jruiz\Escritorio>
Cita de: "Eternal Idol" Mentira, haciendolo bien tenes tu 1 en pantalla:Código: Text #include <stdio.h> void main(){ int numeros[]={1,2,3,4,5,6}; printf ("Numero en la posicion 0 es: %d",numeros[NULL]); } MENTIRA!!!!tal como esta mostrado no compila.Código: Textint numeros[5]={1,2,3,4,5,6};printf ("Numero en la posicion 0 es:",numeros[NULL]); primero que todo porque el arreglo es de 5 y esta llenado con 6... Y segundo aun si se soluciona eso bota el error que dije.
claro porque al cambiarle la extencion ya no estamos hablando de C, sino de C++.
Entonces ....???? ...Yo creo que es un espacio reservado que tal vez al convertirlo a entero se hace 0es como pasar "" (vacio) a entero da cero ...
Cita de: "Eternal Idol" Con cl archivo.cpp compila perfectamente. claro porque al cambiarle la extencion ya no estamos hablando de C, sino de C++.Esto es compilándolo como código de C:CitarC:\Documents and Settings\jruiz\Escritorio>cl code.cMicrosoft ® 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86Copyright © Microsoft Corporation. All rights reserved.code.ccode.c(6) : error C2107: illegal index, indirection not allowedC:\Documents and Settings\jruiz\Escritorio>
pointer.cpp: En function `int main()':pointer.cpp:5: aviso: converting NULL to non-pointer type
en ningún lado de ANSI C dice que solo los castings.
Ahora, yo no se de C/C++ asi que como dice Radical, no me peguen
yo solo digo unas cosas:1- yo uso null como si fuera 0, siempre2- el hecho de que yo y la mayoria o la totalidad lo use asi no implica que sea lo absolutamente cierto cierto... me gusta sembrar controversia para ponernos a pensar, porque para mi ese rollo no esta claro por ANSI C, ni por ningún lado.