int * a;
a = new int[10];
cout << sizeof(a)/sizeof(int);
通常の配列を使用すると、答えは10になります。残念ながら、印刷されたラッキーナンバーは1でした。これは、 sizeof(int) が 4 で iszeof(*int) も 4 であるためです。どうすればこれを克服できますか? 私の場合、メモリにサイズを保持することは複雑なオプションです。コードを使用してサイズを取得するにはどうすればよいですか?
私の最善の推測は、配列を反復処理してその末尾を検索することです。末尾は 0 ですよね?助言がありますか?
- 編集
ベクトルについて私が恐れているのは、プッシュバック中に再割り当てされることです。要点はわかりました。メモリを割り当てることができます。構造を変更することはできませんが、コード全体が関連しています。答えてくれてありがとう、どうしようもないので、サイズをメモリに保存する方法を探すだけです。
私が尋ねたのは、どのような構造を使用するかでした。