1

Вопрос по visual-c++, arrays, c++ – динамически изменять размер массива с ++

У меня есть массив, определенный как;

static double Temp_data[TABLE_SIZE];

Я хочу изменить размер массива в соответствии с пользовательским вводом. Это возможно? Пожалуйста, помогите мне. Благодарю.

  • Error: User Rate Limit Exceededstd::vectorError: User Rate Limit Exceeded&myvector[0]Error: User Rate Limit Exceededmyvector.data().

    от
  • Error: User Rate Limit Exceededreserve()Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit ExceededvectorError: User Rate Limit Exceededpush_backError: User Rate Limit ExceededresizeError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от gishara
  • Error: User Rate Limit ExceededvectorError: User Rate Limit Exceededstd::arrayError: User Rate Limit ExceededvectorError: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • 2

    Используйте динамическое распределение памяти.

    int size;
    cin>>size
    int *ptr = new int[size];
    

    http://www.cplusplus.com/doc/tutorial/dynamic/

  • 2

    T * pData

    pData = new T [NUM_ELEMENTS];

    В основном используя новый оператор. Читайте больше о новом из любой ссылки C ++

  • 8

    Нет. Вы, вероятно, хотите использовать

    std::vector<double> Temp_data;

    Тогда вы можете использовать егоresize() функция-член, чтобы установить размер, как вы считаете нужным.

    Изменить: просто чтобы быть ясно, вы обычно хотите избежать использованияnew напрямую, если можете (и в этом случае вы можете очень легко). Прямое использованиеnew является постоянным источником ошибок многих типов.std::vector обрабатывает довольно много угловых случаев, которые трудно исправитьnewгарантирует, что данные очищаются, когда они выходят из области видимости, и т. д.

    Я уже говорил, и я повторю здесь: однажды у вас не было другого выбора, кроме как написать код, который использовалnew, Теперь у вас есть выбор - и вы должны его использовать. Учитывая современный компилятор и стандартную библиотеку, почти никогда нет причин выделять массивnew.