假设我创建了一个带有int m [5] [5]的构造函数。无论何时我在main中初始化一个数组,如:(int k [5] [5];)并将其作为参数传递给构造函数它工作正常。但是,我已经尝试分配如下的二维数组:
int **d=new int*[5];
for(int i=0;i<5;i++){
d[i]=new int[5]; }
//5x5 matrix
并且构造函数不会将数组作为参数。 为什么会这样?
答案 0 :(得分:1)
<a id="add">Add new</a>
<div id="container">
</div>
$(document).ready(function() {
$("#add").on("click", function(e){
e.preventDefault();
$("#container").append('<select class="idFolder" name="idFolder[]"><option value="AL">Alabama</option><option value="WY">Wyoming</option></select>');
$('.idFolder').select2({
width: '100%'
}).on('select2:select', function(e) {
var id = e.params.data.id;
alert(id);
});
});
});
没有定义双指针,尽管语法可能会让你这么想。见Why can't we use double pointer to represent two dimensional arrays?
答案 1 :(得分:0)
指向每个携带数组的指针的指针不是2D数组,因此d [n] [m]不是** d,尽管您可能会以相同的方式处理它们,如下所示:d [i] [j]。
所以要么使你的构造函数如下:
className(int **d);
或者只是传递一个普通的2D数组,你的构造函数将是这样的:
className(int d[5][5]);