star
- указатель, указывающий на одно целое число. Таким образом, length
должен быть 1, до вас, чтобы установить его. star[0]
в порядке, но 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