我在以下函数中面临内存泄漏情况。
char * readdatafromfile(unsigned pageNumber) {
char *buff = (char*) malloc(sizeof(char) * pagesize);
lseek(fd, pagesize * (pageNumber), SEEK_SET);
read(fd, buff, pagesize);
return buff;
}
//Read from file
char * readfromfile(char *fname, int pageno) {
char *buff = NULL;
fd = searchinvector(fname);
if (fd > 0)
buff = readdatafromfile(pageno);
else
printf("\nINDEX is not opened\n");
return buff;
}
我正在尝试通过以下方式调用该函数
char* root_buf = readfromfile(fname,pageno);
有人可以指出发生内存泄漏的位置以及如何克服它。
编辑
我确实打电话免费(root_buf);之后。忘了说那部分。我相信这与我正在创建一个指针并返回它的事实有关。也许引用被调用函数中的另一个指针捕获。