消息关闭
    暂无新消息!

c++readline内存泄漏问题

问题作者 : 龙社2017-06-17发布
实在想不懂内存哪里丢失了
#include <readline/readline.h>
#include <readline/history.h>
#include <string>
#include <iostream>
using namespace std;

static char* line_read = (char*)NULL;

char * rl_gets (){
/* If the buffer has already been allocated, return the memory to the free pool. */
if (line_read){
  delete []line_read;
  line_read = (char *)NULL;
}
string tmp = "Test@";
/* Get a line from the user. */
line_read = readline (tmp.c_str());
/* If the line has any text in it, save it on the history. */
if (line_read && *line_read)
add_history (line_read);

return (line_read);
}

int main(){
int n;
cin >> n;
while(n--){
rl_gets();
}
}

6个回答

︿ 1
最后一次 rl_gets 之后,line_read并没有delete

还有其他代码看不到,不知道你具体是如何分配和销毁其他的内存的
︿ 0
这个是readline和add_history我也不是很懂主要想放在c++里面实现个上下翻查历史的功能