SCIP:关于箱子包装示例中的"SCIP_ReaderData"

SCIP: About the "SCIP_ReaderData" in the bin packing example

本文关键字:SCIP ReaderData 于箱子 箱子 包装      更新时间:2023-10-16

关于binpacking示例中定义的读取器插件的问题。我在接口方法(文件reader_bpa.c)中发现了以下声明

 SCIP_READERDATA* readerdata;
 readerdata = NULL;

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

typedef struct SCIP_ReaderData SCIP_READERDATA;

但是,结构体SCIP_ReaderData没有在装箱读取器中定义,那么"SCIP_ReaderData*ReaderData;"引用的实际结构体是哪个?什么样的指针是readerdata?

PS:我注意到SCIP中的默认读卡器有类似的用法。

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

可以找到关于不完整类型的更有用的信息,例如,这里的

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