Если у вас есть верхняя граница размера ожидаемой строки:
char * c = new char[size];
тогда, возможно, вы можете проверить, заканчивается ли он в пределах:
bool is_valid(char *c, size_t size) {
while (size--) if (*c) return true;
return false;
}
другим способом является инкапсуляция char * внутри класса в конструкторе или наличие действительного флага в таком классе.