请教关于new char 和 delete的问题——堆栈问题
我在程序中一共用了三个new char
pFileBuff[0] =(unsigned char *)new char[FileLnth[0]];//读取第一个文件内容的数组
pFileBuff[1] =(unsigned char *)new char[FileLnth[1]];//读取第二个文件
后面我需要开辟一个新的指针,在pFileBuff[0]指向的数组加上一定数目的别的数值,然后存到一个文件后,删除三个指针。如下面:P2AD大于FileLnth[0],P2AD为外部输入的数值,数值本身没有问题,调试过程中能识别。
pFileBuff =(unsigned char *)new char[ P2AD+FileLnth[1])//准备存到第三个文件的数组
等我将pFileBuff的内容存到CFILE file文件后,delete三个new char开辟的空间。程序出现错误。不知怎么消除这种错误,我试过,除非不delete pFileBuff 才能消除错误
错误信息:HEAP[******.exe]: Heap block at 00C3C458 modified at 00C3C4BC past requested size of 5c
delete pFilBuf;//出错,即使带[]也出错
delete pFileBuff[0];
delete pFileBuff[1];
pFileBuff[0] =(unsigned char *)new char[FileLnth[0]];//读取第一个文件内容的数组
pFileBuff[1] =(unsigned char *)new char[FileLnth[1]];//读取第二个文件
后面我需要开辟一个新的指针,在pFileBuff[0]指向的数组加上一定数目的别的数值,然后存到一个文件后,删除三个指针。如下面:P2AD大于FileLnth[0],P2AD为外部输入的数值,数值本身没有问题,调试过程中能识别。
pFileBuff =(unsigned char *)new char[ P2AD+FileLnth[1])//准备存到第三个文件的数组
等我将pFileBuff的内容存到CFILE file文件后,delete三个new char开辟的空间。程序出现错误。不知怎么消除这种错误,我试过,除非不delete pFileBuff 才能消除错误
错误信息:HEAP[******.exe]: Heap block at 00C3C458 modified at 00C3C4BC past requested size of 5c
delete pFilBuf;//出错,即使带[]也出错
delete pFileBuff[0];
delete pFileBuff[1];
...全文
相关推荐
C++对象在堆栈区的析构 - 好好理解堆栈
> x;char* ch = new char[x]; // 动态分配内存// 使用ch...delete[] ch; // 释放内存```#### 8.
C语言开发工程师笔试题.docx
**内存管理**:正确使用new和delete关键字管理内存。 - 如何使用new创建数组,并在使用完毕后用delete释放内存。5.
Codeshef:这些是我最近解决的来自Codeshef的问题
**内存管理**:理解堆栈和堆的区别,以及手动内存管理(new、delete操作)和智能指针(如unique_ptr、shared_ptr)的使用。
How Not To Program In C++
此外,避免使用new[]和delete单个元素,应使用new[]和delete[]配对以确保数组的正确释放。函数参数传递也是需要注意的一环。
堆和栈内存分配实用.pdf
堆内存的分配和释放由程序员负责,比如在C++程序中的new char[20]或C语言中的malloc(20)。


