Boomer Boomer
Boomer Boomer

В C++ массив объявляется к примеру int/char array[число элементов] ; а если я не знаю сколько элементов будет?

как тогда объявить массив? int/char array[]; ? Скажем при парсинге?

TY
Tatyana Yugay

Тогда создаешь указатель, а когда будет ясно, сколько нужно - выделяешь под него память:
int *a,b;
cin >> b;
a=new int[ b];//выделяем b элементов
....//работаем с массивом
delete []a;//и не забываем освободить память!

Впрочем, в новом стандарте C++11 можно и просто
int b;
cin>>b;
int a[ b ];

АН
Анна Никитина

Есть два варианта:
а) объявить массив с гарантированным запасом по длине
б) использовать динамические массивы, которые автоматически увеличиваются в длине, если ее нехватает. В C++ этот тип массивов называется vector.

Nootsall Murzabekov
Nootsall Murzabekov

не знаешь - выделяй память динамически
malloc / free
int a[] = malloc(sizeof(int)*1000);
free(a);

new / delete
int a[] = new int[1000];
delete a;

или используй std::vector и компанию
use std;
std::vector a;

МО
Мажинова Оксана

сделать с запасом, весь не заполнять, не подходит?

Кр
Кристина

правильнее будет, сначало кодом определить сколько елементов. но лучше выложить часть кода. я узал яву, там при парсере ввообще не указывал ограничения элементов

Юля
Юля

Надо рассчитать какое число элементов будет максимум и запросить у windows оперативки через HeapAlloc, а после использования освободить с помощью HeapFree. При расчете объёма, не забудь пересчитать в байты размер одного элемента, а потом перемножить на их (элементов) максимальное количество, это число и передашь функции HeapAlloc.

Похожие вопросы
c#. тип char * это что?
как в С++ можно записать вывод переменной int вместе с окончанием типа char переменной пример ниже смотрите
Pascal. Дан массив действительных чисел сформировать массив из индексов элементов меньше числа C
int func(double* arr, int length);int func(char* str);Функція func переста
Как преобразовать int юникод в char или String в visual c++?
Как записать число int в ячейку char?
C++. Как вывести числа из массива char в файл.?
Как перевести цифры из char в int(C++)
Кто знает как в С/С++ преобразовать целое число (int) в массив целых чисел (тоже int)?
Array walker C language.