首页 文章

SCIP:关于bin打包示例中的“SCIP_ReaderData”

提问于
浏览
2

关于binpacking示例中定义的reader插件的问题 . 我在接口方法(文件reader_bpa.c)中找到了以下声明,

SCIP_READERDATA* readerdata;
 readerdata = NULL;

我知道SCIP_READERDATA是在文件type_reader.h中定义的:

typedef struct SCIP_ReaderData SCIP_READERDATA;

但是,struct SCIP_ReaderData没有在binpacking reader中定义,因此它是“SCIP_READERDATA * readerdata”的实际结构 . 参考? readerdata是什么类型的指针?

PS:我注意到SCIP中的默认读者具有相似的用法 .

1 回答

  • 2

    如果我没有弄错的话,那就更像是一个C问题,而不是一个SCIP问题 . 接口函数SCIPincludeReader()和SCIPincludeReaderBasic()需要指向读取器数据的指针作为最后一个参数 . 读者数据应该允许插件作者通过声明与其他插件一样多的相应的 struct SCIP_ReaderData 来将任意数据与其读取器插件连接起来 . 如果您尝试对指针执行任何操作,例如,使用 SCIPallocMemory(scip, &readerdata) 为其分配内存,则会出现编译器错误,因为指针指的是 an incomplete type ,即 struct SCIP_ReaderData .

    找到了有关不完整类型的更多有用信息,例如here

    关键是,该示例使用它来更清楚地将哪些参数传递给 SCIPIncludeReaderBasic() -function,否则您将看到 NULL .

相关问题