visual在c++中创建动态内存
visual Creating a dynamic memory in c++
我正在尝试创建一个动态内存。数组的大小由用户输入决定。我得到了以下错误,"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];
相关文章:
- 在以唯一ptr为值的C++映射中,动态内存何时会被销毁
- 开放 CV 中的动态内存分配,用于视频处理
- 为什么类和 main() 函数中也有动态内存分配
- 在没有动态内存的世界中,我是否需要虚拟析构函数?
- c++ 动态内存 堆栈中的分配
- 给定特定内存地址的数组的动态内存分配
- 释放动态内存时C++错误
- 我刚刚了解了C++中的动态内存分配
- 无法删除布尔动态内存分配
- 有没有办法找到动态内存大小,比如大小?
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 具有对齐存储的动态内存分配
- 指向数组unique_ptr在调用 release() 后会自动释放动态内存,这是真的吗?
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- 我应该在这个程序中使用静态内存分配还是动态内存分配
- C++ 模板函数中的动态内存分配
- 指向动态内存中结构中的变量时出现问题
- C++具有动态内存分配的 constexpr 函数
- 动态内存分配错误
- 按引用传递和动态内存分配之间的区别是什么