C plus plus codereview过程中,针对“是否在不关闭上一个文件的情况下重用了文件指针”需要检查哪些点?请举代码一一说明。需要有错误代码示范和正确代码示范,并有示范代码的说明。
时间: 2023-02-14 20:10:39 浏览: 76
在 C++ 代码审核过程中,需要检查以下几点来确保文件指针是否重用了未关闭的文件:
1. 检查文件是否正确关闭:错误示范代码:
```
void func() {
ofstream file("example.txt");
// ...
} // file 在这里不会被关闭
```
正确示范代码:
```
void func() {
ofstream file("example.txt");
// ...
file.close();
} // file 在这里被关闭
```
2. 检查是否重复打开了同一个文件:错误示范代码:
```
void func() {
ofstream file("example.txt");
// ...
ofstream file("example.txt"); // 重复打开了同一个文件
}
```
正确示范代码:
```
void func() {
ofstream file("example.txt");
// ...
file.close();
ofstream file("example.txt"); // 先关闭了文件再重新打开
}
```
3. 检查是否在函数返回前关闭了文件,尤其是在函数中创建文件并返回文件指针的情况:错误示范代码:
```
ofstream *createFile() {
ofstream *file = new ofstream("example.txt");
return file;
}
int main() {
ofstream *file = createFile();
// ...
delete file; // 没有关闭文件
}
```
正确示范代码:
```
ofstream *createFile() {
ofstream *file = new ofstream("example.txt");
return file;
}
int main() {
ofstream *file = createFile();
// ...
file->close();
delete file; // 先关闭文件再释放内存
}
```
审核代码时需要注意这些点,以免在重用
阅读全文