重複の可能性:
malloc 後にメモリ ブロックの長さを取得する方法は?
ポインタがある場合、によって割り当てられたバイト数を知ることは可能new
ですか? 私がグーグルで検索したとき、私は Windows:_msize()
と Mac:の解決策を見つけましたmalloc_size()
。しかし、Linux には何もありません。
そうでない場合、なぜプログラマーから隠されているのか誰か知っていますか? delete
そのような情報は絶対に知っておくべきです。
アップデート:
私の知る限り、このコードがある場合:
class A {
~A() {}
int m_a;
};
class B : public A {
~B() {}
int m_b;
};
int main() { A * b = new B(); delete b; return 0; }
A のデストラクタが呼び出されますが、割り当てられたメモリはすべてnew
解放されます。これは、ポインターのみを知っている方法で計算できることを意味します。では、それをプログラマーから隠す理由は何ですか?