现象
使用makefile编译成功编译,但是在运行时出现
Segmentation fault (core dumped) 段错误,如下图所示:

尝试办法
1.让copilot找bug:
没有找到具体的问题,只指出了是指针访问越界以及未定义行为。指出了一个大概的方向
2.使用GBD查找问题:
每次都停在compared函数上,

或者我想打印输出的数组时stdio报错,

当我把它注释掉后没有出现问题。推测问题出现在输出的cpu或者gpu数组上。
3.自查代码逻辑,重点看输出的cpu或者gpu数组:

发现将dref的空间错误的申请在了gpu上,那么当cpu想去读取dref时就会出错。因为cpu无法直接去读取gpu内的数据。
修改方法
修改dref在cpu空间申请内存,然后重新编译运行:

成功输出正确的前缀和,问题解决!