这是一个简单的程序,它将文件“hello.txt”读入一个动态分配的缓冲区,最初大小为 10(当它被填满时大小翻倍)
运行 valgrind 时,似乎存在内存泄漏,但我不确定问题出在哪里。我在使用后释放了缓冲区的内存。
错误似乎是“条件跳转或移动取决于未初始化的值”
任何人都可以帮助确定是否存在内存泄漏?如果不是,那是什么问题?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFERSIZE 10
int main(int argc, char const *argv[])
{
FILE *source;
source = fopen("hello.txt","r");
char *buffer = (char *)malloc(BUFFERSIZE);
int current_size = BUFFERSIZE;
int len = 0;
char c;
while((c = fgetc(source)) != EOF)
{
if(len == current_size-1)
{
current_size *= 2;
buffer = (char *)realloc(buffer,current_size);
}
buffer[len] = c;
len++;
}
printf("%s",buffer);
free(buffer);
return 0;
}