El título puede ser un poco inapropiado ... solo porque no estoy seguro de si mi puntero de char apunta a NULL, o si solo apunta a una matriz de caracteres de tamaño 0.¿Cómo puedo verificar si un puntero apunta a NULL?
Así que tengo
char* data = getenv("QUERY_STRING");
Y quiero comprobar si los datos es nulo (o longitud es < 1). He intentado:
if(strlen(data)<1)
pero me da un error:
==24945== Invalid read of size 1
==24945== at 0x8048BF9: main (in /cpp.cgi)
==24945== Address 0x1 is not stack'd, malloc'd or (recently) free'd
También he intentado
if(data == NULL)
pero con el mismo resultado.
¿Qué está pasando aquí? Ya he intentado cout con los datos, y eso funciona bien. Parece que no puedo verificar si es nulo o está vacío.
Me doy cuenta de que son dos cosas diferentes (nulas y vacías). Quiero saber qué datos estarán aquí y cómo verificar si son nulos/vacíos.
Nota al margen: debe usar 'const char *', no 'char *'. De [los documentos (C++)] (http://www.cplusplus.com/reference/clibrary/cstdlib/getenv/): 'La cadena apuntada por el puntero devuelto por esta función no será modificada por el programa. – Cameron