この質問を参照してください非定数変数で配列を初期化する方法はありますか? (C++)
短い答えは、直接これを行うことはできません。ただし、次のようなものでも同じ効果を得ることができます
int arraySize = 10;
int * myArray = new int[arraySize];
は配列へのポインタになり、 などmyArray
の配列のようにアクセスできます。myArray[0]
可変長配列を持つことを可能にするベクトルを使用することもできます。私の例では、変数の初期化子を使用して配列を作成できますが、myArray
私の例では 10 項目しかありません。配列がどれくらい長くなるかわからない場合は、ベクターを使用して、アイテムをプッシュおよびポップすることができます。
また、私の例では、メモリを動的に割り当てたので、配列を使い終わったら、次のようにしてそのメモリを解放する必要があることに注意してください。
delete[] myArray;
ポイントを説明するための小さなサンプルアプリを次に示します
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int arraySize = 10;
int * myArray = new int[arraySize];
myArray[0] = 1;
cout << myArray[0] << endl;
delete[] myArray;
}