代码片断如下:
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>using namespace std;int _tmain()
{
    char* p = new char;
    char* p1 = "1234567890";
    memcpy(p, p1, 9);

    delete[] p;                        (1)
    p = NULL;
    return 1;}上述代码在windows mobile professional 6下编译,
运行到(1)处出现内存非法访问异常
原因从表面上看是因为对p只分配了1个字节的内存,
却往里面拷贝了9个字节而造成了异常,但是改为
memcpy(p, p1, 8)后,运行成功但是在VC下编译该代码,memcpy拷贝的字节长度大于目标缓存的大小时,则立刻发生异常上述情况是何原因,为何在windows mobile上在某些情况下允许memcpy拷贝的字节数比目标缓存大而不异常