1

intオブジェクトにメモリを動的に割り当てたい場合は、次のようにします。

int *x = new int;

この場合、ヒープがオブジェクト4-bytesのメモリを確保していることがわかりintます。

しかし、user-definedクラス (型) があり、メモリを動的に割り当てたい場合は、次のようにします。

Car *c = new Car;

Carオブジェクトのヒープに予約する必要があるメモリの量を知るにはどうすればよいですか?

ありがとう。

4

4 に答える 4

3

それがsizeof(Car)バイトになります。これはコンパイラが自動的に行うため、特に何もする必要はありません。

于 2011-01-29T09:02:31.147 に答える
2

sizeof演算子を使用したい。sizeof 演算子は、型のサイズをバイト単位で返し、コンパイル時に評価されます。mallocこれは、malloc では割り当てる必要のあるバイト数を指定する必要があるため、特に便利です。ただし、C++ を使用newしているため、これは自動的に行われます。

sizeof演算子は、またはで見つかった型を返しsize_tますcstddefstddef.h

コード例:

size_t size_in_bytes = sizeof(Car);

于 2011-01-29T09:34:17.943 に答える
2

クラス オブジェクトのサイズを決定する方法については、この記事を参照してください。以下を使用してプログラムで利用できます。

size_t car_size = sizeof(Car);
于 2011-01-29T09:03:41.410 に答える
2

を探していsizeof()ます。この値は、メモリのパディングやアラインメントのために、ユーザー定義型の予想よりも大きくなる可能性があることに注意してください。

于 2011-01-29T09:04:07.160 に答える