我看到很多围绕文件句柄的 RAII 示例类。
我试图将这些示例改编为字符指针,但没有运气。
我正在使用的库具有获取字符指针地址的函数(声明为 get_me_a_string(char **x))。这些函数为该字符指针分配内存,并将其留给库的最终用户在他们自己的代码中清理它。
所以,我有看起来像这样的代码......
char* a = NULL;
char* b = NULL;
char* c = NULL;
get_me_a_string(&a);
if(a == NULL){
return;
}
get_me_a_beer(&b);
if(b == NULL){
if(a != NULL){
free(a);
}
return;
}
get_me_something(&c);
if(c == NULL){
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
return;
}
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
if(a != NULL){
free(b);
}
听起来 RAII 是我上面提到的这个烂摊子的答案。有人可以提供一个简单的 C++ 类来包装 char* 而不是 FILE* 吗?
谢谢