动态输入数组
Dynamically input Array
我想创建一个二维数组。用户将输入 # 行和 # 列。我不知道为什么我在编译时遇到"分段错误(核心转储)"。
#include 使用命名空间标准;
int main(){
int **array;
int x,y;
cout<<"input dimention rows*columns "<<endl;
cin>>y>>x;
* array=new int[y];
for (int i=0; i<y;i++){array[i]=new int[x];}
for (int i=0;i<y;i++){
for (int n=0;n<x;n++){
array[i][n]=(i+1)*(n+1);
}}
cout<<array[1][2]<<endl;
}
当你这样做时:
*array=new int[y];
您尚未为array
分配任何内存以指向。您需要array
指向指向int
的指针的大小y
数组。
但是您可以使用std::vector<std::vector<int>>
而不是动态分配的数组安全地实现这一点。
std::vector<std::vector<int>> (y, std::vector<int>(x));
* array=new int[y];
在这里,您正在取消引用array
但由于它是未初始化的,因此将导致未定义的行为。
*
可能只是一个错字。以下内容将执行您想要的操作:
array=new int*[y];
^ ^
即创建一个整数指针数组。然后,您可以在第一个循环中为每个指针分配内存。
但是,这是C++,而不是 C,因此仅使用 std::vector<std::vector<int>>
而不是 int**
会更容易做到。
相关文章:
- 检查TCHAR数组输入是否为带符号整数C++
- C++数组输入不接受一定数量的整数
- 为什么我的代码无法处理大型数组输入(>10000)?
- 我正在努力处理多维数组输入和输出,我管理输入,但是打印无法按计划工作
- 使用无符号字符数组输入十六进制数
- C++用用户输入在循环中填充 char 数组:输入整个字符串时到底发生了什么?
- 如何从用户获取数组输入
- C 2x2数组输入线
- 字符数组输入限制
- 将字符串数组输入到函数C++
- C++:如何将普通话(字符串)分配给用户使用数组输入的数字 &运算符问题
- 数组排序、数组输入、数组输出
- 将字符数组输入stdin
- 如何在 c++ 中为对象数组输入字符串
- 如何在c++ mex文件中访问多维数组输入
- 读取文件并将其作为整型数组输入
- 从c++文件中获取输入(矩阵数组输入)
- 数组输入不工作
- 函数结构数组输入cin问题
- 结束数组输入(c++行业标准)