c++ - 如何在不使用向量的情况下调整动态指针数组的大小
问题描述
如果我想调整这个数组的大小:
int array[5];
我会这样做:
int* temp = new int [n];
...
array = temp;
但是,如果我有这个数组,我会怎么做?
int *array[5];
也许像这样?
int** temp = new int* [n];
解决方案
您不能调整固定数组的大小,句号。它的大小是恒定的,在编译时确定。
您也不能将 ' ed指针分配给new[]
固定数组。
因此,您的两个示例都不起作用。
在您的第一个示例中,您将需要这个:
int* array = new int [5];
在你的第二个例子中,你需要这个:
int** array = new int* [5];
无论哪种方式,不要忘记delete[]
在array
分配新的东西之前,例如:
int* array = new int [5];
...
int* temp = new int [n];
...
delete[] array;
array = temp;
推荐阅读
- javascript - 在猫鼬中更新许多
- android - 地图片段(Kotlin)onMapReady 不工作
- c++ - 如何制作一个接受 2 个参数而不是 1 的递归 lambda 函数?
- oracle - 如何从 SSIS/Visual Studio 建立到 ORACLE 的 ODBC 连接?
- javascript - 您如何判断 HTML5 视频是实时流还是仅来自 Javascript 的视频?
- mongodb - 在保留根字段的同时对子文档进行分组/计数
- testing - SonarQube 不显示 Ruby on Rails 项目的测试代码覆盖率
- jquery - 带有动画的jquery循环,如何等到下一个查询
- python - 在 tkinter 应用程序中将图像添加到按钮的问题
- ruby - 没有文件扩展名的 Ruby Dir.glob 输出