我需要一个可以节省内存的读取线版本。我有这个“工作”的解决方案。但我不确定它在内存中的表现如何。当我启用free(text)
它时,它适用于几行,然后出现错误。因此,尽管我 malloc 文本,但现在文本和结果都不会被释放。那是对的吗 ?为什么会这样?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* readFromIn()
{
char* text = malloc(1024);
char* result = fgets(text, 1024, stdin);
if (result[strlen(result) - 1] == 10)
result[strlen(result) - 1] = 0;
//free(text);
return result;
}
我有很多短线可以阅读,我还需要标准输入可以用FILE*
句柄替换。我不需要重新分配文本,因为我只有短行。