猿问

如何创建一个动态整数数组

如何使用new关键字在C ++中创建动态整数数组?



湖上湖
浏览 1399回答 3
3回答

HUX布斯

int main(){  int size;  std::cin >> size;  int *array = new int[size];  delete [] array;  return 0;}不要忘记为delete您分配的每个数组new。

扬帆大鱼

从C ++ 11开始,有一种安全的替代方法,new[]与delete[]零开销不同,它是std::vector:std::unique_ptr<int[]> array(new int[size]);在C ++ 14中:auto array = std::make_unique<int[]>(size);以上两个都依赖于相同的头文件, #include <memory>

幕布斯6054654

一旦对动态数组提出疑问,您可能不仅希望创建具有可变大小的数组,而且还希望在运行时更改它的大小。这是带有的示例memcpy,您也可以使用memcpy_s或std::copy。取决于编译器,<memory.h>或者<string.h>可能是必需的。使用此功能时,您将分配新的存储区域,将原始存储区域的值复制到该区域,然后释放它们。//&nbsp; &nbsp; create desired array dynamicallysize_t length;length = 100; //for exampleint *array = new int[length];//&nbsp; &nbsp;now let's change is's size - e.g. add 50 new elementssize_t added = 50;int *added_array = new int[added];/*&nbsp; &nbsp;somehow set values to given arrays*/&nbsp;//&nbsp; &nbsp; add elements to arrayint* 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)。
随时随地看视频慕课网APP
我要回答