Я вырезал и вставил ваш код и протестировал его на моей машине под VS2008, а _CrtMemDifference возвращает 0 ...
Как часто звучит пословица: «Работает на моей машине»;)
Редактировать: у вас есть несколько запущенных потоков? Возможно ли, что другой поток выделил что-то между 2 вызовами _CrtMemCheckpoint?