Ich verwende std::getenv Anruf in meinem Code und ich bin mir nicht sicher über diese drei Möglichkeiten -NULL vs nullptr in einem portierten c Header
const char *env_p = std::getenv("SOME_ENV");
if(env_p == NULL){
std::cout << "NULL caught";
}
if(env_p == 0){
std::cout << "0 caught";
}
if(env_p == nullptr){
std::cout <<"nullptr caught";
}
den einer von ihnen soll ich verwenden? Ich war mehr geneigt in Richtung nullptr
Version seit C++ empfiehlt es, aber seit cstdlib
war ursprünglich eine c-Header, ich bin nicht sicher, für NULL
oder 0
oder nullptr
zu überprüfen.
Ich habe ein Programm zu überprüfen und alle drei wurden abgefangen, weil es keine env-Variable mit dem obigen Namen gab. Also gibt mir das die Wahl, dass ich irgendjemanden von ihnen oder sogar if(!env_p)
richtig benutzen könnte?
Aber ich bin nicht so sicher, da dies möglicherweise nur für dieses Beispiel oder Maschine abhängig oder etwas, das ich vermisse, funktioniert. Also kann jeder diesen Fall bestätigen?
Thankyou
'nullptr' wird natürlich mit jedem Zeiger arbeiten, sogar diejenigen, die Sie an C-Funktionen übergeben, wo es 'NULL' sein wird. –