«Приложение записало в память после завершения буфера кучи» — Cpp

Я пытаюсь удалить буфер в функции, используя Cpp,
Это мой код до сих пор:

void GetPiece(int size)
{
//std::cout << "Downloading File Index: " + currFileIndex <<  " More: " + pieceSize - size;
char * newBuffer = new char[size];
bitRequest->RecvBySize(newBuffer, size - 4, 5);
//newBuffer += 8;
File file("work_torrent.mp3");
file.WriteToFile(newBuffer + 8, size - 4);
file.Close();pieceSize -= size -4;
std::cout << "Downloading File Index: " << currFileIndex << " More: " << pieceSize << std::endl;

if (pieceSize <= 0)
{
currFileIndex++;
pieceSize = pieces.at(currFileIndex).fileSize;
}

offset += size - 4;

if (pieceSize > 16384)
{
if (1048576 - offset < 16384)
{
requestSize = 1048576 - offset;
if (requestSize == 0)
{
offset = 0;
currPieceIndex++;
if (pieceSize > 16384)
{
requestSize = 16384;
}
else {
requestSize = pieceSize;
}
}
}
else {
requestSize = 16384;
}

}
else {
requestSize = pieceSize;
}bitRequest->RequestPiece(currPieceIndex, offset, requestSize);delete[] newBuffer; // Here it throws the error}

Ошибка:

введите описание изображения здесь

Он появляется только когда я пытаюсь освободить массив char от memmorry. Кто-то знает, почему он выдает ошибку?

Когда строки удаления нет, через несколько раз, когда я вызываю функцию, происходит сбой программы из-за неудачного размещения.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]