leetcode中 C++fill()函数对二维数组赋值 存疑

leetcode中 C++fill()函数对二维数组赋值 存疑
int n=4;
int edges[n][n];
fill(edges[0],edges[0]+n*n,1);

img


Line 6: Char 23: runtime error: index 16 out of bounds for type 'int [n]' (solution.cpp)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:16:23

在网上学习的fill()函数对二维数组赋值的方法,在自己的编译器上运行没报错,在leetcode上报错了,不知道为什么,难道是版本问题?求解惑

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);