我真的遇到了这个C++错误:
templatevoid Shift(T* Data, const ulong& Length, long Offset) const { if((!Data) || (!Length)) return; if(Offset < 0) Offset = (Length-1) - ((-Offset-1) % Length); else Offset %= Length; if(!Offset) return; int TSize = sizeof(T); T* Shifter = new T[Length]; if(Shifter) { memcpy(Shifter, Data + TSize * Offset, TSize * (Length - Offset)); memcpy(Shifter + TSize * (Length - Offset), Data, TSize * Offset); //fails memcpy(Data, Shifter, TSize * Length); delete[] Shifter; } }
嗯,失败的是:
77CD0575 ntdll!TpWaitForAlpcCompletion()(C:\ Windows\system32 \ntdll.dll:??)
0028D640 ?? ()(??:??)
77CB57C2 ntdll!RtlLargeIntegerDivide()(C:\ Windows\system32 \ntdll.dll:??)
003E1030 ?? ()(??:??)
77C92A8A ntdll!RtlCopyExtendedContext()(C:\ Windows\system32 \ntdll.dll:??)
?? ?? ()(??:??)
T是短字节,顺便说一句.