运行delete之后出现HEAP_CORRUPTION_DETECTED错误

VS++代码
char * test = new char[2];   
test[2]='b';
delete []test;
运行delete之后出现HEAP_CORRUPTION_DETECTED错误,有哪位大神指点一二……

char* pCmd = new char[9];
你这样的写法表示只申请了9个字节的空间,pCmd合法的下标访问区间是0~8
pCmd[9]='1';这样会直接造成越界写入,破坏了堆空间,造成delete出错

问题补充:以下代码没有问题
char* pCmd = new char[9];  
memset( pCmd, 0, 9);
delete [] pCmd;
而加了一句对最后一个字符的赋值就出现HEAP_CORRUPTION_DETECTED错误
    char* pCmd = new char[9];    
memset( pCmd, 0, 9);
pCmd[9]='1';
delete [] pCmd;