我正在尝试创建一个动态内存.数组的大小由用户输入决定.我收到以下错误,
"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;
Run Code Online (Sandbox Code Playgroud)
您正在尝试使用可变长度数组.不幸的是,C++不允许它们.(虽然有些编译允许它们扩展)
您需要的是使用动态分配数组new.(并稍后手动解除分配delete)
你已经正确地做了这个:
IntPtr = new int[arraySize];
Run Code Online (Sandbox Code Playgroud)
现在你可以对list变量做同样的事情:
Contact *list = new Contact[arraySize];
delete [] list;
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用vector类,这通常比动态数组更受欢迎.
vector<Contact> list(arraySize);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |