Я хотел бы выделить память для массивов, когда их размеры неизвестны до времени выполнения, в C ++.
Я часто использую постоянное (время компиляции) выделение;но хотел бы добиться прогресса в направлении «всегда», используя распределение времени выполнения.Я на самом деле сходит с рук "неявное" распределение по декларации.(Моя терминология для того, что произошло.) И мне интересно, как это на самом деле называется и почему это работает.Фрагмент, который, я думаю, рассказывает историю:
std::ifstream infile;
infile.open("input_info");
if (infile.is_open()) {
infile >> number;
std::cout << number << " " << std::endl;
}
std::pair<int, int> incident_subdomains[number];
int sd[number][2];
То есть;после чтения в нужном размере массивов, я объявляю массивы инцидент_субдомены и sd.Затем я использую эти массивы в последующем коде;например, чтобы прочитать информацию из "input_info", чтобы заполнить массивы.Программа скомпилирована и запущена.Это новая особенность C ++?Мне это нравится.(Я использовал «new» и «vector».) Я использую компилятор c ++: g ++ 7.3.0.