[CSocket]Send指针指向的缓冲区时失误报271E

[CSocket]Send指针指向的缓冲区时出错报271E
C/C++ code

char* pBuffer=(char*)malloc(SIZE_BUFFER);
************************
************************
************************
//pBuffer指向的内存数据是16进制串
lSend = Send(pBuffer+lSendTotal, lBuffer-lSendTotal);
dwError = GetLastError();
//这样用总会报271E
//然而如果我把pBuffer+lSendTotal指向的内容放到一个char[]里就正常
//类似
char chBuffer[8192]={0};
memset(chBuffer, 0, sizeof(chBuffer));
memcpy(chBuffer, pBuffer+lSendTotal, xxxxx);
//再进行Send操作时查看GetLastError()就是0


不知道这两种调用怎么会相差如此,请大家帮看看

------解决方案--------------------
char* pBuffer=(char*)malloc(SIZE_BUFFER);
这里也需要memset
memset(pBuffer, 0, sizeof(SIZE_BUFFER));

------解决方案--------------------
你先试试 new的方式会不会出错。malloc的问题在研究
------解决方案--------------------
10014 : 系统检测到在一个调用中尝试使用指针参数时的无效指针地址。 
看下你的指针是否有效?
------解决方案--------------------
代码中做了初始化,只是没插入...
------解决方案--------------------
多贴些代码吧,这点不足以说明情况,拷贝到数组可能只是表象,不足以确认两者存在差异。