Если вы прочитали большинство функций Interlocked API, есть замечания, которые указывают что-то вроде:
"Переменная, на которую указывает параметр Addend, должна быть выровнена по 32-разрядной границе; в противном случае эта функция будет непредсказуемо работать в многопроцессорных системах x86 и любых системах, отличных от x86. См. _Aligned_malloc."
Например, см. Этот MSDN документ .
В основном это говорит о том, что вам нужно выровнять свои данные для правильных результатов, используя _aligned_malloc.