Память «топтается», когда часть кода манипулирует памятью, не осознавая, что другой фрагмент кода использует эту память конфликтным образом. Есть несколько распространенных способов потрепать память.
Один из них выделяет, скажем, 100 байт памяти, но затем сохраняет что-то после 100-го адреса. Эта память может использоваться для хранения чего-то совершенно другого. Это особенно сложно отладить, потому что проблема возникнет, когда что-то попытается получить доступ к жертве, на которую наступили, и код, который наступил на нее, может быть совершенно не связанным.
Другой - доступ к памяти после ее освобождения. Память может быть выделена для другого объекта. Опять же, код, который показывает проблему, может быть связан с вновь выделенным объектом, который получил тот же адрес и не связан с кодом, вызвавшим проблему.