为什么我遇到缓冲区错误?
Why am I experiencing a buffer error?
我在使用"删除"指令进行调试时遇到错误,我不知道为什么。何时应使用删除?
下面你可以看到代码:
int GenerateOrderData(SetupData &mySetupData, OrderData &myOrder, int Level, wchar_t *buffer, bool normalAOC, int theActualCutsinPlatform)
{
int Size = 0;
if ( buffer != NULL )
{
//INIT
wchar_t* lString = new wchar_t[3];
swprintf(lString, L"%s", L"LPD");
Size += swprintf(buffer+Size, L"%c%02d%s", Communication::UNICODE_STX, numMSG, lString);
delete[] lString;
...}
以及来自调试器的错误:
调试错误! 检测到堆损坏:在0x00806F80的正常块 (#152( 之后。CRT 检测到应用程序在以下时间后写入内存 堆缓冲区结束。
我不明白的是,我创建的数组以及使用删除解除分配后如何出现缓冲区错误。
在C++中,字符串以零结尾。所以L"LPD"
其实是角色L, P, D,
。您需要使用new wchar_t[4]
为终止空字符留出空间。
相关文章:
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 使用 strcat 获取缓冲区溢出错误
- 将缓冲区复制到剪贴板 [换行错误]
- openCL-创建子缓冲区返回错误代码13
- 与Qt交叉编译到Raspberry Pi 3B+通讯录(协议缓冲区)-错误符号查找错误
- 应该如何读取堆缓冲区溢出错误消息?
- 为什么我遇到缓冲区错误?
- 错误:使用未声明的标识符"缓冲区"C++
- 导致堆缓冲区错误的动态分配数组的析构函数
- OpenGL 顶点缓冲区类重定义和模板方法错误
- 带有模板的循环缓冲区在Keil MDK5上是模棱两可的错误?
- 协议缓冲区错误版本
- 我正在尝试使用回溯来解决 N queen 问题,但在编译时它会给出运行时错误(动态堆栈缓冲区溢出)
- 可能的 ComputeCPP SYCL 错误读取嵌套缓冲区
- 为什么 LeetCode 给出错误:地址清理器:堆缓冲区溢出
- 为什么错误 C6386 缓冲区溢出与 strsafe.h 字符串 Cch 函数
- C++缓冲区太小错误
- coreValidation-drawState-Invalidimagelayout错误上的命令缓冲区错误
- Cython缓冲区协议示例错误