Тема: Проблема з видаленням вказівника.
Усім привіт!
Ось поставили мені задачу заставити студію читати з файлу "блоками" до кінця стрічки.
Типу до тих пір поки буфер переповнений - продовжувати читати.
Суть в тому , що все працює
Але я виділив пам'ять , отже потрібно її видалити.
А воно "свариться". Сидів гуглив.Чесно Але толком нічого не пишуть:) У кожного окремий випадок цієї проблеми.
Тому , якщо хтось може щось пояснити чи підказати як цю проблему виправити - буду дуже вдячний!
Ось код :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILE_NAME "Input.txt"
#define FILE_MOD "r"
#define BUFFER_SIZE 255
int main()
{
FILE *infile = fopen(FILE_NAME,FILE_MOD);
if (infile == NULL)
{
printf("Error\n");
return 0;
}
char buff[BUFFER_SIZE];
while (!feof(infile))
{
char *tmp = NULL;
int iTotalLen = 0;
while (true)
{
fgets(buff,BUFFER_SIZE,infile);
int len = strlen(buff);
tmp = (char*)realloc(tmp, len + iTotalLen);
strcpy(tmp + iTotalLen, buff);
iTotalLen += len;
if (len < 255) break;
}
printf(tmp);
delete tmp;// ось тут проблема
}
fclose(infile);
}
Там помилка щось типу : "HEAP CORRUPTION DETECTED" ]:->