If *pb is NULL, do you think "*pb && (*pa == *pb)" will evaluate TRUE or FALSE?

BTW, please use code blocks when posting code. It preserves the formatting and makes it much more readable.