int n=4;
int edges[n][n];
fill(edges[0],edges[0]+n*n,1);
fill(edges[0],edges[0]+n*n-1,1);
你加上n * n的话,越界了,起始从0开始,最后一个元素下标是 n * n-1
你传给fill()
函数的指针是int (*)[4]
类型,即指向int[4]
数组的指针。你应该传int*
类型的指针。
int n=4;
int edges[n][n];
fill(&edges[0][0],&edges[0][0]+n*n,1);