今天写啦一个关于堆的数据结构,一直找不到异常

今天写啦一个关于堆的数据结构,一直找不到错误#include iostream#define BUFFERLEN 10using namespace s

今天写啦一个关于堆的数据结构,一直找不到错误
#include <iostream>
#define BUFFERLEN 10

using namespace std;

class Heap
{
public:
Heap();
~Heap();
void InsertHeap(int data);
void TraverBuffer()const;
protected:
int * ReMallocMemory(int *buffer);
void ChangeValue(int firstindex,int anotherindex);
private:
int m_len;
  int *m_buffer;
//int m_buffer[10];
};

Heap::Heap()
{
m_len = 0;
m_buffer = new int[BUFFERLEN];
}

Heap::~Heap()
{
m_len = 0;

delete []m_buffer;
}

void Heap::TraverBuffer()const
{
cout<<endl;
for(int i = 0;i<m_len;i++)
{
cout<<m_buffer[i]<<" ";
}
cout<<endl;
}
int * Heap::ReMallocMemory(int *buffer)
{
int *pBuf = new int[2*sizeof(buffer)];
memcpy(pBuf,buffer,sizeof(buffer));
delete []buffer;
return pBuf;
}

void Heap::ChangeValue(int firstindex,int anotherindex)
{
int buf = m_buffer[firstindex];
m_buffer[firstindex] = m_buffer[anotherindex];
m_buffer[anotherindex] = buf;
}

void Heap::InsertHeap(int data)
{
int parentindex = (m_len-1)/2;
int childindex = m_len;


m_len++;
if(m_len > sizeof(m_buffer))
m_buffer = ReMallocMemory(m_buffer);

m_buffer[childindex] = data;

while(childindex>0 && m_buffer[parentindex] < m_buffer[childindex])
{
ChangeValue(parentindex,childindex);
childindex = parentindex;
parentindex = (parentindex-1)/2;
}
}

int main()
{
  Heap myHeap;
  myHeap.InsertHeap(5);
  myHeap.InsertHeap(4);
  myHeap.InsertHeap(3);
  myHeap.InsertHeap(8); //添加到这没有问题;
  myHeap.InsertHeap(7); //添加7就会出现问题;
  myHeap.TraverBuffer();
}

加实现了一个Insert方法,假如将Heap类的成员改成int buffer[10];就一点问题没有,但改成int *buffer就会出现问题了,

[解决办法]
sizeof(m_buffer) == 4 不是 10