Ich weiß, dass diese Frage ein Duplikat von einigen anderen sein kann, aber ich möchte sicher sein, dass ich richtig bin, bevor ich diese Änderung mache, also werde ich hier trotzdem fragen. In einem alten Projekt, das ich dort bin Aufrechterhaltung ist diese Codezeile:C++ - Überprüfen, ob TCHAR-Array leer ist
TCHAR m_sLogPath[MAX_LOGPATH_LEN];
Es gibt Codezeile, wo das Array initialisiert und verwendet, aber nach einer Weile gibt es diese Kontrolle:
if(NULL== m_sLogPath || _tcsicmp(m_sLogPath, trace_path)!=0){//code here}
I Erraten Sie dies, wenn die Anweisung überprüft, ob m_sLogPath leer ist, aber NULL == m_sLogPath ist eine sinnlose Überprüfung, da der Vergleich eines Arrays mit NULL nicht sinnvoll ist. Ich werde das NULL == m_sLogPath entfernen müssen, meine Frage ist, was sollte dahin gehen, um zu überprüfen, dass das Array leer ist? Danke für alle Antworten und Hilfe,
Wenn Sie sagen, ‚nach einer Weile‘ beschäftigen Sie noch direkt mit der m_sLogPath oder hat sie als Argument an jedem Punkt geführt worden? – sji
Vielleicht ist die Person, die das geschrieben hat, nur Paranoia über Stapelzuweisung :) –
Nur sagen, wenn das ein Zeiger auf das ursprüngliche Array ist (was wäre, nachdem es als Argument übergeben wurde), dann ist das eine sehr gültige Überprüfung. – sji