次のコードを検討してください。
int *p = new int;
cout << sizeof(*p);
delete p;
予想どおり、結果は 4 です。次に、次の別のコードを考えてみましょう。
int *p = new int[10];
cout << sizeof(*p);
delete[] p;
40 (割り当てられた配列のサイズ) を取得することを期待していましたが、結果はまだ 4です。
ここで、または でint *foo()
作成された構造体へのポインターを返す関数があるとします(ただし、どれかはわかりません)。new
new[]
int *p = foo();
p
私の質問は、単一の整数または整数の配列を指しているかどうかを知る方法 (またはハック)はありますか?
これは単なる理論的な質問であることを覚えておいてください。この方法で実際のコードを書くつもりはありません。