@EgonOlsen:
Takie testy testują jedynie znajomość języka programowania a nie umiejętności programowania.
Tzn. są przydatne, ale nie jako jedyne kryterium. Tego "." zamiast "->" można zwyczajnie nie zauważyć, zwłaszcza jak ktoś programuje dużo w C#, a w C++ miał przerwę np. rok. Co nie musi wcale oznaczać, że będzie cienkim programistą w C++.
Może się też pojawić wtedy problem, że te proste testy praktyczne przejdzie kilku programistów. I co wtedy? Zawsze jedno pytanie bardziej zaawansowane z trochę bardziej złożonym kodem (ale oczywiście też i większą ilością czasu na to i raczej nie na kartce bez kolorowania składni) jest ok, bo może się trafić, ktoś kto to zrobi. Ważne jednak, żeby nie testowało wiedzy encyklopedycznej z jakiejś wąskiej dziedziny - najlepiej, np. żeby gość miał do tego zadania kompa, IDE i Googla, czyli podobne warunki jak normalnie w pracy. Ewentualnie żeby mógł zadawać pytania, na które odpowiedź znajduje się w Googlach / dokumentacji w 5 sekund.
Stosujemy też pytania w stylu "jak byś zabrał się do rozwiązania danego problemu?", gdzie wiadomo, że nie ma pewnego rozwiązania, ale można sprawdzić, czy kandydat ma sensowne pomysły jak rozwiązać problem, i czy nie rozłoży rąk. Np. problemem może być, że "Od kilku dni niektórzy klienci raportują nam, że nie mogą się zalogować do systemu w godzinach wieczornych. Jakie działania podejmiesz?". Przy takim pytaniu można w trakcie udzielać wskazówek, np. jeśli gość odpowiedziałby, że sprawdziłby najpierw logi to dostałby odpowiedź "W logach systemu nie odnalazłeś żadnych komunikatów o błędach. Co robisz dalej?"
BTW: co do powyższego zadania to oprócz tych 2 błędów, ja bym jeszcze dodał, że używanie makra NULL w C++ to jest "bad style", bo jest zwyczajnie niepotrzebne. Używa się 0. Makro NULL w C++ zwyczajnie nie ma sensu, bo jedyna jego możliwa definicja to:
</cpp>
```