デストラクタによってオブジェクトが終了した後に解放されるメモリの量を測定することは可能ですか?リソースが適切に管理されているかどうかを確認しようとしています。例えば、私はLinkedList
の実装を書いて、それをテストしてきました:C++でのメモリ測定
int main(int argc, char** argv) {
//check point for initial memory
int64_t init = ??? ;
//next points of measurement
int64_t point_a, point_b;
List<int> list;
list.push_back(5);
{
List<double> l;
l.push_back(-0.12);
l.push_back(1.6);
// ... do something else
// ................
// ................
l.push_back(-4.75);
l.push_back(7.8);
l.print();
point_a = ??? ;// memory state after operations with list
}//calling destructor
point_b = ??? ; // memory state after destruction of the l - object
std::cout << "Initial memory: " << init
<< ", memory in scope: " << point_b
<< ", after destructor: " << (point_b - point_a) << "\n";
return 0;
}//main();
私の質問は以下のとおりです。
- それは、これを達成することは可能ですか?
- の場合は、
???
の代わりに何を配置すればよいですか? - より良い方法と異なる方法がありますか?
- これはまったく意味がありますか?
「C/C++」という用語の使用を中止してください。 –
質問は** C++ **ですので、タグ付けをやめてください。Cにはデストラクタはありません(C11にはありますが、この種はありません)。 –
@AnttiHaapala C11はどうですか?私は何かを逃したか? – DeiDei