Forever清 2022-09-20 17:56 采纳率: 0%
浏览 51

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上报错了,不知道为什么,难道是版本问题?求解惑
  • 写回答

2条回答 默认 最新

  • _GX_ 2022-09-20 18:07
    关注

    你传给fill()函数的指针是int (*)[4]类型,即指向int[4]数组的指针。你应该传int*类型的指针。

    int n=4;
    int edges[n][n];
    fill(&edges[0][0],&edges[0][0]+n*n,1);
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月20日