void findWay(int column,int sum,char *array,int s,stack_t sta)
{
if(array[s+column+2]=='0')
{
当我调试程åºæ—¶ï¼Œæˆ‘收到的错误是“地å€0x53越界â€ï¼ˆå¦‚果(迷宫[s +列+ 2] =='0')æ¤è¡Œï¼‰ã€‚为什么呢?
有人请帮帮我。
ç”案 0 :(得分:3)
å› ä¸ºs+column+2
超出了数组的范围,所以需è¦ä¸ºarray
分é…更多内å˜ï¼Œæˆ–者确ä¿ä¸è¦è¶…出分é…的内å˜ã€‚
ç”案 1 :(得分:2)
使用var[]
时,您å–消引用*var
指针。这里,当0x53接近零时,似乎array
为NULL。访问array[s+column+2]
时,您将(s+column+2) * sizeof(*array)
æ·»åŠ åˆ°é›¶ï¼Œè¿™è‚¯å®šä¼šå¯¼è‡´0x53
。
您å¯ä»¥ä½¿ç”¨array
验è¯æ¤æ‰“å°printf("pointer value : %p\n", array);
值。
ç”案 2 :(得分:1)
越界总是æ„味ç€åªæœ‰ä¸€ä»¶äº‹ï¼Œè¶…出å…许范围。 å› æ¤ï¼Œå½“您获得地å€è¶…出界é™æ—¶ï¼Œæ„味ç€åœ°å€è¶…出边界。该边界å¯ä»¥ç”±ç¨‹åºï¼Œæ•°ç»„定义。
ç”案 3 :(得分:0)
è¿™æ„味ç€s+column+2
的值大于数组的长度。