warum stürzt mein programm ab?
-
wenn ich
else p = NULL;auskommentiere funktioniert mein programm, leider nicht logisch ):, aber wenn diese zeile drin ist stürzt das programm ab...
wenn ich z.b. so darauf zugreife://if(extra._struct_search_(1) != NULL) std::cout<<*meinarray._struct_search_(6)<<std::endl;das ist die funktion.
template <class T> int *array<T>::_struct_search_(int stelle) //T = Struktur { T *s; int *p; p = &struct_temp; for(unsigned int i = 0; i < index_z; i++) //muss eh nie weiter als bis zur letzten benutzten zeile { s = &array_eindim[i]; if(s->pos == stelle) { struct_temp = i; } else p = NULL; } return p; }wie man sieht wollt ich einen logischen wert des pointers nutzen um eine nicht erfolgreiche suche aufzuzeigen.
warum funktioniert das nicht?
-
Null zu dereferenzieren ist nicht erlaubt.
-
exigoner schrieb:
wie man sieht wollt ich einen logischen wert des pointers nutzen um eine nicht erfolgreiche suche aufzuzeigen.
Dann mußt du den Pointer auch als logischen Wert überprüfen:
if(p=mein_array._struct_search(6)) cout<<*p<<endl; else cout<<"nicht gefunden"<<endl;(was mir gerade auffällt: Namen mit _ am Anfang könnten Probleme bereiten)