SCIP:关于箱子包装示例中的"SCIP_ReaderData"
SCIP: About the "SCIP_ReaderData" in the bin packing example
关于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
。