所以我在用C编写数独求解器,然后想到了一些我没想到的东西。
数独被存储为指向char的全局指针。
char *sudoku=
"200050713"
"431000805"
"675800094"
"016075000"
"740268901"
"052914037"
"527600109"
"164090382"
"080102006";
在程序的某个地方,我自然不得不写数组,以使其简单(合法),让我们说:
sudoku[1] = '1';
我正在那条线上收到SIGSEGV。只需将全局变量sudoku的类型更改为数组即可解决。
char sudoku[] = ...
如果您想知道的话,没有其他名为sudoku的变量或函数。 我对此行为很好奇,全局指针是只读的吗?