А>Если p1 и p2 не обладают выравниванием, подходящим для double, это будет плохо
Э..., что это значит выравнивание, подходящее для double?
Я подразумевал, что p1 и p2 это просто void*,
указывающие на какую-либо память (байтовые массивы например),
насколько важно на что они конкретно указывают?