0
私は(Student (Name x) (Age y))
のようなテンプレートを持っています。この事実は、タイプStudent
かないのであれば、私はチェックしたいCLIPS - ファクトリストから特定のテンプレートの事実を得る
EnvGetFactList(theEnv, &factlist, NULL);
if (GetType(factlist) == MULTIFIELD)
{
end = GetDOEnd(factlist);
multifieldPtr = GetValue(factlist);
for (i = GetDOBegin(factlist); i <= end; i++)
{
EnvGetFactSlot(theEnv,GetMFValue(multifieldPtr, i),"Name",&theValue);
buf = DOToString(theValue);
printf("%s\n", buf);
}
}
:私は、次を使用してName
という名前スロットのすべての事実を確認することでName
の値を取得することができます。はいの場合は、Name
スロットの値を取得します。 私はEnvFactDeftemplate
を使うべきだと思いますが、それを動作させることはできません。ここに私のコードは
templatePtr = EnvFindDeftemplate(theEnv, "Student");
templatePtr = EnvFactDeftemplate(theEnv,templatePtr);
EnvGetFactSlot(theEnv,&templatePtr,"Name",&theValue);
私は次の実行時のエラー:Segmentation fault (core dumped)
を取得します。問題はどこだ?
ご協力ありがとうございました。これはあなたにとても親切です。 –