用双指针创建的C++二维数组
C++ 2d array created by double pointer
我想用指针创建2d数组,然后显示。我用递增指针(one*)更改行,用索引更改列。我的代码:
int ** tabl=new int *[4];
for (int i=0;i<10;i++)
tabl[i]=new int [3];
int **ptab=tabl;//save first position of array
for (int i=0;i<4;i++)
{
for (int j=0;j<3;j++)
{
*tabl[j]=rand()%10 +1;
printf("%4d",*tabl[j]);
}
tabl++;
}
tabl=ptab;
cout<<endl<<endl<<endl;
for (int i=0;i<4;i++)
{
for (int j=0;j<3;j++)
{
printf("%4d",*tabl[j]);
}
tabl++;
}
输出:
2 8 5 1 10 5 9 9 3 5 6 6
2 1 9 1 9 5 9 5 6 5 6 6
但第二个循环中的一些数字与原始数字不同。为什么?
问题在于引用元素的方式。它应该是(*tabl)[j]
,而不是*tabl[j]
。
还要注意,您在此处超出了分配的内存:
int ** tabl=new int *[4];
for (int i=0;i<10;i++)
^
-----------+
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 在函数中传递二维数组
- 为什么指针在对二维数组进行排序时无法正常工作?
- 创建 std::string 的二维数组的最佳做法
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 元素在二维数组 c++ 中的出现次数
- 执行 c++ 二维数组
- C++ 中的二维数组初始化为一个值
- 在C++中初始化第一维大小未知的二维数组
- 如何在二维数组中存储值?