0
我有像(Student (Name x) (Age y))
這樣的模板。我可以檢查一個使用以下命名Name
插槽的所有事實得到Name
值: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);
}
}
我想檢查,如果這一事實是類型Student
與否。如果是,則獲得Name
插槽的值。 我認爲我應該使用EnvFactDeftemplate
但我無法使它工作。這裏是我的代碼
templatePtr = EnvFindDeftemplate(theEnv, "Student");
templatePtr = EnvFactDeftemplate(theEnv,templatePtr);
EnvGetFactSlot(theEnv,&templatePtr,"Name",&theValue);
但我得到以下運行時錯誤:Segmentation fault (core dumped)
。哪裏有問題?
非常感謝Gary對您的一貫支持。你真好。 –