C++ 在c+中创建动态内存+;
我正在尝试创建一个动态内存。数组的大小由用户输入决定。我得到以下错误,C++ 在c+中创建动态内存+;,c++,visual-c++,C++,Visual C++,我正在尝试创建一个动态内存。数组的大小由用户输入决定。我得到以下错误, “表达式必须具有常量值” 看来我做错了什么。请帮帮我!我怎样才能使它充满活力 这就是我到目前为止所做的: int* IntPtr = NULL; int main(){ int arraySize; cout << "How many numbers will be on the list? "; cin >> arraySize; IntPtr = new int[arraySize];
“表达式必须具有常量值”
看来我做错了什么。请帮帮我!我怎样才能使它充满活力
这就是我到目前为止所做的:
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;
int*IntPtr=NULL;
int main(){
内部阵列化;
排列;
IntPtr=新的int[arraySize];
联系人列表[AraySige];//p>您正在尝试使用。不幸的是,C++不允许它们。(虽然有些编译器允许它们通过扩展)
相反,您需要的是使用new
动态分配数组(稍后使用delete
手动取消分配)
您已经通过以下方式正确执行了此操作:
IntPtr = new int[arraySize];
现在,您可以对列表
变量执行相同的操作:
Contact *list = new Contact[arraySize];
delete [] list;
或者,您可以使用vector
类,该类通常优于动态数组
vector<Contact> list(arraySize);
向量列表(arraySize);
<>代码> 你尝试使用。不幸的是,C++不允许它们。(虽然有些编译器允许它们通过扩展)
相反,您需要的是使用new
动态分配数组(稍后使用delete
手动取消分配)
您已经通过以下方式正确执行了此操作:
IntPtr = new int[arraySize];
现在,您可以对列表
变量执行相同的操作:
Contact *list = new Contact[arraySize];
delete [] list;
或者,您可以使用vector
类,该类通常优于动态数组
vector<Contact> list(arraySize);
向量列表(arraySize);
请改用,或者如果要分配裸阵列,请执行与IntPtr
相同的操作:
Contact* list = new Contact[arraySize];
改为使用,或者如果要分配裸阵列,请执行与使用IntPtr
相同的操作:
Contact* list = new Contact[arraySize];
·改用std::vector
。然后你甚至不需要知道最终大小。你可以向用户索要另一个数字,然后使用push_back
方法将其添加到向量中,然后向量会根据需要增长。干杯&hth。·改用std::vector
。然后你甚至不需要知道最终大小。你可以a只需向用户请求另一个数字,然后使用push_back
方法将其添加到向量中,然后向量会根据需要增长。干杯。,