#include<cstdio>
#include<stdlib.h>
int main()
{
char* ptr=NULL;
printf("%s",ptr);
return 0;
}
Imprime (nulo) como salida. Lo anterior es un código de muestra. En el código real obtengo char * como devolución de una función y deseo imprimir la cadena de caracteres para el registro. Sin embargo, NULL también es un valor de retorno válido de esa función, por lo que me pregunto si se requiere una verificación nula antes de imprimir la cadena de caracteres.¿Es seguro el siguiente código C?
char* ptr=someFuncion();
// do i need the following if statement?
if(ptr!=NULL)
{
printf("%s",ptr);
}
Sólo quiero estar seguro de que la salida sería misma es decir, si ptr = NULL entonces la salida debe ser (nulo) en todas las plataformas y los compiladores y el código anterior (sin sentencia if) no se estrellaría en cualquier Plataforma compatible con C estándar.
En resumen, ¿es compatible el código anterior (sin la instrucción if)?
Gracias por su ayuda y paciencia :)
Saludos
lali
¿Cuál es el encabezado '' que proporciona su código? Su código invoca un comportamiento indefinido pasando un puntero nulo a una función que no espera uno. Puede suceder cualquier cosa, incluso podría funcionar accidentalmente, principalmente. –
bien, lo tengo. Gracias a todos por su ayuda en "tiempo real" :)) – ghayalcoder