Wie kann ich überprüfen, ob ein Zeiger NULL ist?

Der Titel mag ein wenig irreführend... nur weil ich mir nicht sicher, ob mein char Zeiger zeigt auf NULL, oder wenn es nur ein Hinweis auf ein char-array der Größe 0.

Also ich habe

char* data = getenv("QUERY_STRING");

Und ich möchte, um zu überprüfen, ob Daten null ist (oder ist Länge < 1). Ich habe versucht:

if(strlen(data)<1) 

aber ich bekomme eine Fehlermeldung:

==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

Ich habe auch versucht

if(data == NULL)

aber mit dem gleichen Ergebnis.

Was ist denn hier Los? Ich habe bereits versucht cout mit den Daten, und das funktioniert auch. Ich kann einfach nicht scheinen, um zu überprüfen, ob es null oder leer ist.

Merke ich, das sind zwei verschiedene Dinge (null und leere). Ich möchte wissen, welche Daten dabei wäre, und wie Sie überprüfen, wenn es ist null/leer ist.

Anmerkung: Sie sollten const char*, nicht char*. Aus (C++) docs: The string pointed by the pointer returned by this function shall not be modified by the program.

InformationsquelleAutor varatis | 2012-04-26

Schreibe einen Kommentar