edit, я представлял, что мы на C, но мы на C ++
заменить
void FindCurrectMyClass(const int val, MyClass* myClassPtr)
от
void FindCurrectMyClass(const int val, MyClass*& myClassPtr)
иначе вы изменяете только локальный параметр, поэтому при возврате ничего не делается, и myClassPtr по-прежнему равен нулю
Конечно, вы должны поставить
MyClass myClass0;
MyClass myClass1;
MyClass myClass2;
например, в глобальной области видимости до FindCurrectMyClass , иначе никто не сможет получить к ним доступ