Я сделал такую функцию:
bool IsSameString(char* p1, char* p2)
{
return 0 == strcmp(p1, p2);
}
Проблема заключается в том, что иногда, по ошибке, передаются аргументы, которые не являются строками (это означает, что p1
или p2
не заканчивается нулевым символом).
Затем strcmp
продолжает сравнивать, пока не достигнет недоступной памяти и сработает.
Есть ли безопасная версия strcmp
? Или я могу сказать, является ли p1
(и p2
) строкой или нет в безопасном режиме?