Переменные в C++ как длина массива

на С++ С++С++ нельзя использовать переменные в качестве длины массива, необходимо использовать константу

Поскольку пространство массива выделяется в памяти стека, размер этой части пространства должен быть определен во время компиляции и не может быть выделен во время выполнения, в то время как постоянное значение определяется во время компиляции, а переменная должна быть определена во время время выполнения


Поэтому, если вы хотите использовать переменные для объявления длины массива, вы можете открыть пространство массива в памяти кучи.В ситуации, когда вы не можете определить, сколько памяти вам нужно, динамическое выделение памяти решает эту проблему :

использовать новый новыйn e wудалить удалитьудалить _ _ _ _ _

int *a =new int[n]; //new一个数组a
memset(a,0,n*sizeof(int)) //初始化
//...
delete[] a; //删除
a=NULL;

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

Последнее замечание:

  1. После использования этого нового новогоудалить удалитьпосле массива n e wудалить , чтобы предотвратить утечку памяти _
  2. пусть указатель ааон указывает наNULL NULLN ULL , не позволяя ему по-прежнему указывать на какое-то пространство памяти

Guess you like

Origin blog.csdn.net/qq_73450915/article/details/130968599
C++
Recommended