на С++ С++С++ нельзя использовать переменные в качестве длины массива, необходимо использовать константу
Поскольку пространство массива выделяется в памяти стека, размер этой части пространства должен быть определен во время компиляции и не может быть выделен во время выполнения, в то время как постоянное значение определяется во время компиляции, а переменная должна быть определена во время время выполнения
Поэтому, если вы хотите использовать переменные для объявления длины массива, вы можете открыть пространство массива в памяти кучи.В ситуации, когда вы не можете определить, сколько памяти вам нужно, динамическое выделение памяти решает эту проблему :
использовать новый новыйn e w和удалить удалитьудалить: _ _ _ _ _
int *a =new int[n]; //new一个数组a
memset(a,0,n*sizeof(int)) //初始化
//...
delete[] a; //删除
a=NULL;
Таким образом, этот кусок памяти создается самостоятельно.Вы можете использовать переменные для инициализации длины массива, а пространство памяти будет динамически выделяться во время выполнения.
Последнее замечание:
- После использования этого нового новогоудалить удалитьпосле массива n e wудалить , чтобы предотвратить утечку памяти _
- пусть указатель ааон указывает наNULL NULLN ULL , не позволяя ему по-прежнему указывать на какое-то пространство памяти