-7

重複
の可能性:sizeof(配列を指すポインター)を見つける方法

次のコードを使用して配列を作成しています

float *A;
A = (float *) malloc(100*sizeof(float));
float *B;
B = (float *) malloc(100*sizeof(float));

しかし、これらの後に次のようにAとBのサイズのプリントを入力すると、100が表示されると予想される結果として2が得られます。

sizeof(A)/sizeof(float)
4

2 に答える 2

11

あなたの期待は間違っています。Aはであるため、実際にどのように割り当てるかに関係なく、float*そのサイズはになります。sizeof(float*)

静的配列がある場合、つまりfloat A[100]、これは機能します。

これはC++なので、std::arrayまたはを使用しますstd::vector

最悪の場合、を使用しますnew[]絶対に使用しないでくださいmalloc

于 2013-01-27T00:27:53.887 に答える
4

これは、現在のスコープで定義されている静的配列に対してのみ機能します。

あなたの例で得られるのは、ポインタのサイズをのfloatサイズで割ったものだけですfloat

于 2013-01-27T00:30:01.383 に答える