void problem1Solver(Page_tp page) { .... }
void problem2Solver(Page_tp page) { .... }
void userSearch(Page_tp page) {
problem1Solver(page); /* まず、課題 1 を解いて */
problem2Solver(page); /* 次に、課題 2 を解いて */
}
まずは課題 1 について。ポイントは、
for(i = 0; i < getNumLinks(page); i++) {
Page_tp child = traceNthLink(page, i);
printf("Name: %s", getName(child));
}
(gdb) print page [return] /* アドレス値が分かる */ (gdb) print *page [return] /* 中身が分かる */とかで見れます。多分、あり得ないアドレス値が入っているんでしょう。
void p2search(Page_tp page, int depth) {
......
Page_tp child = ....;
p2search(child, depthd+1);
......
}
という作りにすると便利です。枝に向かうほど depth が大きくなります。大域変数の int depth とか作ると訳が分からなくなります。やめときましょう。
2002.11.05/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp