動的にメモリを割り当てるためのnewの使用について混乱しているビット。「new」を使用したC++での動的割り当て
私は100個のint型(intは4バイトであると仮定した場合)のためにメモリを割り当てる必要がある場合、私は言う必要があります。
int *ptr = new int[100];
または
int *ptr = new int[100*4]; //assuming int is 4 bytes.
Basially new演算子は、バイトや多くのバイトというメモリを割り当て新しい演算子を呼び出すときに使用されるタイプTの?
私のクラスにアロケータメンバ関数が定義されていない場合、&私はそのクラス型のオブジェクトの配列を割り当てる必要があります、新しいoepratorはsizeof(クラス型)を見つけ、作業?
EDIT:
複数の質問にクラビングのため申し訳ありませんが、その関連:
するコードの作業罰金のこの作品、私はサイズが[100]の2次元配列を割り当てたい場合は、[4] int of
int *arr = new int [100][4];
ありがとうございます。
-AD
@Fred:返信いただきありがとうございます。私のorignalコードはC + C++(80%/ 20%)のミックスであり、C++にはあまり精通していません。しかし、std :: vectorを使用する簡単なテストコードの例を指摘できますか? – goldenmean
@goldenmean:それよりも、私はいくつかの点を指摘することができます:*加速C++ *、*プログラミング:C++ *や[others](http://stackoverflow.com/q/388242)を使った原則と実践。 –
intのサイズ[100] [4]の2D配列を割り当てたい場合、このコードはうまく動作します:int * arr = new int [100] [4]; – goldenmean