是什么导致此功能出现分段错误?

我正在编写一个函数,用于搜索2D字符数组以查找列表中的单词。我遇到分段错误,可能是由于我根据回溯设置了while循环,但我看不到是什么原因造成的。

以下是我认为该错误所在的函数的代码。注意:这只是水平搜索的一部分。

Program received signal SIGSEGV,Segmentation fault.
0x0000000008000fd2 in searchWord (j=0,k=0,gridsize=15,arr=0x8403260,list=0x84032e0,listPos=49)
    at arraysearch.c:110
110                     while(i < strlen(*(list+listPos)) && *(*(arr+(j+i))+k) == *(*(list+(listPos+i)))){
(gdb) bt
#0  0x0000000008000fd2 in searchWord (j=0,listPos=49)
    at arraysearch.c:110
#1  0x0000000008000ed4 in searchPuzzle (arr=0x8403260,n=15,listSize=50) at arraysearch.c:96
#2  0x0000000008000d70 in main (argc=2,argv=0x7ffffffee048) at arraysearch.c:68

这就是回溯告诉我的。

div
woshicgro 回答:是什么导致此功能出现分段错误?

我修复了细分错误。我正在访问列表中的单词,而不是单词中的字母。

*(*(list+(listPos+i)))

需要

*(*(list+listPos)+i)
本文链接:https://www.f2er.com/3155703.html

大家都在问