最近遇到一个例子,就是有两个函数A调用B,在A里定义一个结构体类型的变量,在调用B的时候引用传递进去,在B里为这个变量的某个成员申请内存。B调用返回之后,在A里使用这个申请的内存,然后释放。
也就是说,内存的申请和释放,不在同一个函数里。就完全和RAII(https://mzhan017.blog.csdn.net/article/details/148106906)的理念不相容了。
这就是一个容易导致潜在人为错误的场景。
所以尽量使用RAII的设计,智能指针。