Josef: / C: Pointer "überprüfen.."

Beitrag lesen

Hallo.

Folgender Beispielcode:

  
  
#include <stdio.h>  
  
typedef struct foo  
{  
  const char *hello;  
} foo_t;  
  
void my_function(foo_t *p_foo)  
{  
  if (p_foo->hello)  
    printf("TRUE\n");  
  else  
    printf("FALSE\n");  
}  
  
int main()  
{  
  foo_t my_foo;  
  
  my_function(&my_foo);  
  
  return 1;  
}  
  

Der Pointer my_foo.hello ist ja nicht initialisiert. Er verweist also auf eine beliebige Stelle im Speicher. Da er nicht auf NULL zeigt, ist er TRUE. Wie überprüfe ich, a) ob ein Pointer auf eine valide (von mir zugewiesene) Adresse zeigt oder b) wie initialisiere ich alle Pointer default mit NULL. (Angenommen, das struct hat n Elemente, möchte ich ja nicht n Elemente auf NULL setzen)

Thx.