star
は、単一の整数を指すポインタです。したがって、length
は1に設定する必要があります。 star[0]
はOKですが、star[1]
は範囲外です。ちなみに、動的割り当てを使用する場合は、最後にdelete star;
を忘れないでください。
sizeof(star)
は、割り当てられた要素の数ではなく、ポインタのサイズを示します。あなたが動的なサイズをお知りになりたい場合は
、あなたは自分でそれを追跡する必要があります。
size_t length = 15; // or any number you want
int *star = new int[length]; // this time you've allocated an array
...
delete[] star; // if you allocate an array, don't forget the []
代替は、必要に応じて成長し、の世話をすることができ、完全に動的でvector<int>
を使用することです彼らはもはや必要ありません割り当て解除:あなたは正確に配列(のようにメンバーにアクセスすることができ
vector<int> star; // empty vector created
...
star.push_back(i); // add an element
...
j=star.size(); // in fact you don't need j anymore
例えばstar[k])
イメージではなくコードをここに貼り付けます。 – abdul
'star'は配列ではありません。 – 0x499602D2