Я пытаюсь прочитать содержимое файла в строку, и у меня возникают проблемы с распределением памяти для строки. Я читаю в файле строку за строкой, b/c Я хочу пропустить первые две строки.Чтение в файле в строку
int counter=1;
char *myhtml;
myhtml=calloc(1,10);
while ((read = getline(&line, &len, fp)) != -1)
{
if (counter>2)
{
//printf("%s",line);
myhtml=realloc(myhtml,sizeof(char)*strlen(line));
strcat(myhtml,line);
}
counter++;
}
Как я могу перераспределить память для такого рода функций?
Возможно, стоит перечитать документацию для 'realloc()'. В частности, он не увеличивает * выделенный размер блока памяти, он * устанавливает * новый размер на все, что вы просите. –
Кроме того, подумайте о том, что произойдет, если 'realloc' выйдет из строя и вернет' NULL', тогда вы потеряете исходный указатель, если вы переназначаете указатель, который вы перераспределите. –
Способ, которым вы пользуетесь 'strcat', напоминает мне об этом: http://www.joelonsoftware.com/articles/fog0000000319.html –