Presumably, you're accessing invalid memory. Either you're dereferencing a pointer to invalid memory, or you're trying to access beyond the memory allocated for one of your arrays.
You really haven't shown us enough code for us to know.
It depends entirely on how you have your memory laid out.
What exactly is guess?
if strlen(*guess) compiles, that means that guess is a char** of some sort.
guess[i] might not even be valid data, but we can't tell without knowing more.
You might have meant to do (*guess)[i] or guess[0][i] to access individual characters, but it's very odd.