CopyMemory时如果越界访问会如何样

CopyMemory时如果越界访问会怎么样?
拷贝的数据大于实际数据大小,会导致内存泄漏吗?

------解决方案--------------------
这个要看情况:
1.目标没有越界,源越界. 即读取越界了,写并没有越界. 这时只是越界读取的部分数据不定,不会让程序崩溃
(注:除非读取了系统保护的内存地址,读取系统保护的内存地址程序会崩溃的)

2.目标越界,即写越界了.
这时又分,目标缓冲区位置.
比如目标缓冲区是在栈上分配的,又越界了,即会破坏的栈内容,这时程序多半会崩溃.
目标缓冲区位于堆中,或者静态数据区中.
这时可能会破坏后其后面的正常数据,导致不可知的错误. 比如被破坏的数据正好是某个数据的指针,那么这个指针被改变了,当然程序肯定会出错,可能就会崩溃.

所以读取越界后果可能不会有多严重,但是写越界后果就比较严重了,甚至是致命的.
所以你的MSDN中,有多关于串操作的新版本函数都多了一个目标缓冲区大小,这个参数.

比如以前的函数; strcpy();参数就只有两个缓冲区指针
但是新版的strcpy_s()就多了一个目标缓冲区大小的参数,就是为了提高安全性