visual在c++中创建动态内存

visual Creating a dynamic memory in c++

本文关键字:动态 内存 创建 c++ visual      更新时间:2023-10-16

我正在尝试创建一个动态内存。数组的大小由用户输入决定。我得到了以下错误,"expression must have a constant value"

好像我做错了什么。请帮帮我!我该如何让它充满活力?

这是我目前为止写的:

int* IntPtr = NULL;
int main(){
 int arraySize;
 cout << "How many numbers will be on the list? ";
 cin >> arraySize;
 IntPtr = new int[arraySize];
Contact list[arraySize]; // <-- expression must be constant
//more code
delete [] IntPtr;

您正在尝试使用可变长度数组。不幸的是,c++不允许这样做。(虽然有些编译器允许扩展)

您需要的是使用new动态分配数组。(然后用delete手动释放)

你已经正确地做了:

IntPtr = new int[arraySize];

现在可以对list变量执行相同的操作:

Contact *list = new Contact[arraySize];
delete [] list;

或者,您可以使用vector类,它通常优于动态数组。

vector<Contact> list(arraySize);

使用std::vector<Contact>代替,或者如果您想分配一个裸数组,请像使用IntPtr一样:

Contact* list = new Contact[arraySize];