SCIP:关于装箱示例中的"SCIP_ReaderData"
SCIP: About the "SCIP_ReaderData" in the bin packing example
关于 binpacking 示例中定义的 reader 插件的问题。在接口方法(文件reader_bpa.c)中找到如下声明,
SCIP_READERDATA* readerdata;
readerdata = NULL;
我知道 SCIP_READERDATA 在文件 type_reader.h 中定义:
typedef struct SCIP_ReaderData SCIP_READERDATA;
然而,结构体 SCIP_ReaderData 并没有在 binpacking reader 中定义,那么 "SCIP_READERDATA* readerdata;" 引用的实际结构体是哪个? reader数据是什么类型的指针?
PS: 我注意到 SCIP 中默认的 readers 有类似的用法。
如果我没记错的话,那是 C 题而不是 SCIP 题。接口函数 SCIPincludeReader() 和 SCIPincludeReaderBasic() 需要一个指向 reader 数据的指针作为最后一个参数。 Reader 数据应该允许插件作者通过像许多其他插件一样声明相应的 struct SCIP_ReaderData
来将任意数据与其 reader 插件连接。
如果您尝试对指针做任何事情,例如,使用 SCIPallocMemory(scip, &readerdata)
为其分配内存,您将得到编译器错误,因为指针指向 不完整类型 ,即 struct SCIP_ReaderData
.
找到更多关于不完整类型的有用信息,例如,here
关键是,该示例使用它来更清楚地说明哪些参数被传递给 SCIPIncludeReaderBasic()
-函数,否则您会看到 NULL
。
关于 binpacking 示例中定义的 reader 插件的问题。在接口方法(文件reader_bpa.c)中找到如下声明,
SCIP_READERDATA* readerdata;
readerdata = NULL;
我知道 SCIP_READERDATA 在文件 type_reader.h 中定义:
typedef struct SCIP_ReaderData SCIP_READERDATA;
然而,结构体 SCIP_ReaderData 并没有在 binpacking reader 中定义,那么 "SCIP_READERDATA* readerdata;" 引用的实际结构体是哪个? reader数据是什么类型的指针?
PS: 我注意到 SCIP 中默认的 readers 有类似的用法。
如果我没记错的话,那是 C 题而不是 SCIP 题。接口函数 SCIPincludeReader() 和 SCIPincludeReaderBasic() 需要一个指向 reader 数据的指针作为最后一个参数。 Reader 数据应该允许插件作者通过像许多其他插件一样声明相应的 struct SCIP_ReaderData
来将任意数据与其 reader 插件连接。
如果您尝试对指针做任何事情,例如,使用 SCIPallocMemory(scip, &readerdata)
为其分配内存,您将得到编译器错误,因为指针指向 不完整类型 ,即 struct SCIP_ReaderData
.
找到更多关于不完整类型的有用信息,例如,here
关键是,该示例使用它来更清楚地说明哪些参数被传递给 SCIPIncludeReaderBasic()
-函数,否则您会看到 NULL
。