0
A
回答
1
在C/C++,一个声明了一个二维阵列一样JAVA,但由编译器的存储器分配是不同。例如,在C中,将一个int的二维数组声明为连续的内存块。
int a[][]=new int[2][4]
被分配为32(2 * 4 * 4)字节的连续块。它只有一个指向块开始的引用。如果你想访问(i,j)处的元素,那么它返回参考a +(i * 2 + j)处的值。
但是在java中,它分配了一个2个指针的数组并重新分配每一行。
a= new int[2][];
a[0] = new int[4];
a[1] = new int[4];
所以你可以修改每一行的引用。
但是在C++中,您也可以通过使用以下代码来实现JAVA行为。
int **a = new int*[2];
a[0] = new int[4];
a[1] = new int[4];
a[0] = a[1];
如果你需要在C中,你应该可以用malloc做同样的事情。
0
在C++:
int **a = new int*[2];
a[0] = new int[4];
a[1] = a[0];
在C:
int **a = malloc(2*sizeof(*a));
a[0] = malloc(4*sizeof(*a[0])];
a[1] = a[0];
相关问题
- 1. 数据表第二行第一行
- 2. C++数组 - 只使用第一行
- 3. 使用mysql查找第一行数和第二行数
- 4. 如何将第二行的第二列与Bootstrap中的第一列或第一行对齐?
- 5. 使用二维数组与不同大小的第二行C++
- 6. 第一个和第二个xml节点
- 7. 如何从第一行减去第二行和生成的MySQL
- 8. SQL-如何把第一行的值,第二行
- 9. 为什么第二行中的第一个框不在第二行?
- 10. 如何打印第一个数组中的单词,第二个数组中的第二个和第三个数组中的第三个单词的组合?
- 11. 如何组合这两个数组,使用第一个数组作为键和第二个数组的值?
- 12. 第一个C#第二个表格
- 13. 为什么第二个数组比第一个少一个?
- 14. 如何将.txt的第一行与第二个.txt中的第一行连接起来用于循环
- 15. 如何离开第一行并打印第二行php
- 16. Python从第一个数组开始第二个数组
- 17. 为Access中的每个人选择第一行,第二行和第三行
- 18. 在numpy数组的第一行中找到第一个0
- 19. 如何使第一行黑色和第二列红色
- 20. R如何获得第一个和第二个值的行数据列
- 21. 如何按一列和第二个总和进行分组?
- 22. Shell脚本在第二次运行时使用第一次运行的参数
- 23. C#如何在带有sendkeys的循环中读取第一行,然后是第二行,然后是第三行?
- 24. 使用C++中的第二个索引数组对数组进行排序
- 25. 如何在第一个在javaScript中结束后运行第二个函数?
- 26. 如果uilabel只有一行,使用uiLabel的第二行
- 27. 如何在第二个函数中使用第一个函数的返回值?
- 28. 如何运行第二个sql select如果第一个是空的?
- 29. 如何使用PHPExcel将第一行的键转换为数组?
- 30. 如何根据第二个对二维数组中的第一列进行排序?