好的,所以我刚开始学习关于内存泄漏的知识。我运行了Valgrind来查找内存泄漏。我得到了以下结果:
那是否明确意味着泄漏问题出现在我的readInput函数中?如果是的话,我该如何消除内存泄漏呢?以下是有问题的函数代码:
==6134== 24 bytes in 3 blocks are definitely lost in loss record 4 of 4
==6134== at 0x4026351: operator new(unsigned int) (vg_replace_malloc.c:255)
==6134== by 0x8048B74: readInput(char&) (in calc)
那是否明确意味着泄漏问题出现在我的readInput函数中?如果是的话,我该如何消除内存泄漏呢?以下是有问题的函数代码:
double* readInput(char& command){
std::string in;
std::getline(std::cin, in);
if(!isNumber(in)){
if(in.length()>1){
command = 0;
}
else{
command = in.c_str()[0];
}
return NULL;
}
else{
return new double(atof(in.c_str()));
}
}