如何创build一个dynamic的整数数组

如何使用new关键字在C ++中创builddynamic数组的整数?

 int main() { int size; std::cin >> size; int *array = new int[size]; delete [] array; return 0; } 

不要忘记delete所有分配的new数组。

自从C ++ 11以来,除了std::vector ,还有一个安全的替代scheme,即new[]delete[] ,它是零开销的:

 std::unique_ptr<int[]> array(new int[size]); 

在C ++ 14中:

 auto array = std::make_unique<int[]>(size); 

上述两者都依赖于相同的头文件#include <memory>

您可能要考虑使用标准模板库。 它使用起来简单易用,而且不必担心内存分配问题。

http://www.cplusplus.com/reference/stl/vector/vector/

 int size = 5; // declare the size of the vector vector<int> myvector(size, 0); // create a vector to hold "size" int's // all initialized to zero myvector[0] = 1234; // assign values like a c++ array 
 int* array = new int[size]; 

只要有关dynamic数组的问题,您可能不仅需要创build具有可变大小的数组,而且还需要在运行时更改它的大小。 这里是memcpy一个例子,你也可以使用memcpy_s或者std::copy 。 取决于编译器,可能需要<memory.h><string.h> 。 当使用这个函数时,你分配新的内存区域,复制原始内存区域的值,然后释放它们。

 // create desired array dynamically size_t length; length = 100; //for example int *array = new int[length]; // now let's change is's size - eg add 50 new elements size_t added = 50; int *added_array = new int[added]; /* somehow set values to given arrays */ // add elements to array int* temp = new int[length + added]; memcpy(temp, array, length * sizeof(int)); memcpy(temp + length, added_array, added * sizeof(int)); delete[] array; array = temp; 

您可以使用常量4而不是sizeof(int)

使用newdynamic分配一些内存:

 int* array = new int[SIZE];