我在for循环中遇到memcpy的问题-我需要将字符串字符串转换为* char:
for(i=0;i<10000;i++){
char* Bchar = new char[Bi[i].length()+1];
ZeroMemory(Bchar,Bi[i].length());
memcpy(Bchar, Bi[i].c_str(), Bi[i].length()); //Exception on this row
...
delete [] Bchar;
}
与exception有链接
最佳答案
看起来您不是将字符串结尾为零,而不是新创建的Bchar
缓冲区。根据将Bchar
缓冲区复制到缓冲区后的处理方式,很可能会访问缓冲区的末尾。
代替ZeroMemory / memcpy,只需使用strcpy(或strcpy_s)。
关于c++ - memcpy和_CrtlsValidHeapPointer(pUserData),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20439018/