digamos que tenemos una matriz de punteros de char¿La matriz de caracteres * debe terminar en ' 0' o en ' 0'?
char* array[] = { "abc", "def" };
Ahora lo que deben ser puestas en el final?
char* array[] = { "abc", "def", '\0' };
o
char* array[] = { "abc", "def", "\0" };
Sin embargo, ambas obras. Sólo tenemos que poner la condición de comprobar el final en consecuencia
como
array[ index ] != '\0';
o
array[ index ] != "\0";
Mi pregunta es cuál es la mejor manera? ¿Cuál es utilizado por la mayoría de los programadores?
Editar
mayoría de las respuestas dicen que NULL es mejor que '\ 0' y "\ 0". Pero siempre he pensado que
NULL es igual a '\ 0', que es igual a 0x0 ó 0
¿Está mal?
En cuanto a la edición, In C NULL es un puntero (generalmente definido (void *) 0. '\ 0' es una constante de caracteres. Por lo tanto, cuando se utiliza una constante de caracteres donde se espera un puntero y se produce una conversión implícita. sucede la conversión de cualquier resultado entero cero en un puntero NULL, pero no deja en claro que usted tenía la intención de utilizar un puntero. Es mejor simplemente usar un entero constante literal IMO cero. Como ocurre en C++ este es el enfoque preferido en cualquier caso, pero en C++ la macro NULL también se define de esa manera (eche un vistazo a los archivos de encabezado estándar de su compilador). – Clifford