I know that the most common source of segmentation error comes from the programmer writing/reading from memory that has not been allocated by the operating system yet. I'm experiencing a segmentation fault problem whenever a special case of the program runs, yet I can't find any references in the code where the variable the debugger is complaining about is being read/written illegally. What other highly likely sources are there? What are some of the tools used to find it?
I found the following description when going through the debugger. I'm not sure how much help this would be, but I don't totally understand the explanation in this comment.
Code:/* * If this ASSERT fails, a bad pointer has been passed in. It may be * totally bogus, or it may have been allocated from another heap. * The pointer MUST come from the 'local' heap. */ _ASSERTE(_CrtIsValidHeapPointer(pUserData));