だから私は "1"を返すだけの再帰関数を書こうとしています。私の関数の中で、私はそれが同じIDを持っている場合はCHAPへのポインタを見つけて返すようにしたい今ポインタまたはNULLを1回だけ返すCの再帰関数
typedef struct CHAP CHAP;
struct CHAP{
int ID;
CHAP** list;
int nb;
};
:だから私は何をしようとしていますが、最初に私は単純な再帰構造を定義しているされて
私の目標。これまで私はこれを持っています:
CHAP* find_chap(CHAP* ch, CHAP* target){
if (ch->ID == target->ID) return ch;
for (int i=0; i<ch->nb; i++){
find_chap(ch->list[i], target);
}
//return NULL?
}
しかし、もしエントリが見つからなければ何かを返す方法がわかりませんか?だからその場合はNULLを返すが、どこに配置するかはわからない。 IDがいくつかのエントリに含まれている場合、最初に見つかったポインタだけが返されます。あなたがから値を返すのを忘れて/
'find_chap'への再帰呼び出しが何を返すのか確認してください。 –
エントリiksが見つからなければ 'NULL'を返します。ここで再帰は必要ありません。 –
あなたは 'return find_chap(...);'を使用しなければなりません – linuxfan