Ваша настоящая проблема в том, что вы вызываете функцию, которая возвращает неверные указатели. У вас есть доступ к его исходному коду? В 90% случаев я сталкивался с подобными проблемами, потому что либо:
1) Функция возвращает указатель на стек; например.,
char a[10];
...
return a;
2) Функция возвращает указатель, которому никогда не назначали допустимую память для начала:
char* foo; // Invalid pointer
...
return foo;
3) Функция возвращает указатель, который был уже удален (или свободен):
char* foo = new char[10];
...
delete[] foo;
return foo;
Вам действительно нужно найти реальную проблему, а не обходить ее.