Нет, вы сравниваете значения указателей (т.е. адресов), а не их содержимое. Этот код не является недействительным, просто он, вероятно, не делает то, что вы ожидаете.
В C ++ вам следует избегать const char *
и перейти на std::string
:
#include <string>
std::string t1("test1");
std::string t2("test2");
if (t1 == t2) {
/* ... */
}