Comment puis-je vérifier si un pointeur à NULL?

Le titre peut être un peu un abus de langage... juste parce que je ne suis pas sûr si mon char pointeur pointe vers NULL, ou si c'est juste pointant vers un char tableau de taille 0.

J'ai donc

char* data = getenv("QUERY_STRING");

Et je veux vérifier si les données sont null (ou de la longueur < 1). J'ai essayé:

if(strlen(data)<1) 

mais j'obtiens une erreur:

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

J'ai aussi essayé de

if(data == NULL)

mais avec le même résultat.

Ce qui se passe ici? J'ai déjà essayé de cout avec les données, et cela fonctionne bien. Je n'arrive pas à vérifier si elle est null ou vide.

Je me rends compte ce sont deux choses différentes (null et vide). Je veux savoir lequel des données devrait être ici, et comment faire pour vérifier si elle est null/vide.

  • Remarque: Vous devez utiliser const char*, pas char*. À partir de le C++ (C++) docs: The string pointed by the pointer returned by this function shall not be modified by the program.
InformationsquelleAutor varatis | 2012-04-26