我正在使用igraph C库,我想生成一个无向循环,没有循环,以及一个具有幂律度分布的单边网络。我的参数是:
我想使用igraph_static_power_law_game
图形生成器,我编写了以下代码。
#include <igraph.h>
int main() {
igraph_t g;
int igraph_static_power_law_game(&g, 25000, 25000, 2.16104, -1, 0, 0, 1);
igraph_destroy(&g);
return 0;
}
我使用以下命令编译代码。
gcc testpw.cpp -I/usr/local/Cellar/igraph/0.7.1/include/igraph -L/usr/local/Cellar/igraph/0.7.1/lib -ligraph -o testpw
出现以下错误。
error: excess elements in scalar initializer
int igraph_static_power_law_game(&g, 25000, 25000, 2.16104, -1, 0, 0, 1);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
由于我找不到使用igraph C库在线生成幂律程度网络的例子,我不知道是什么方法来实现它。我在这里做错了吗?
答案 0 :(得分:2)
如果您正在编译C代码,那么int
之前不需要igraph_static_power_law_game()
,因为这会使该行看起来像函数的错误声明而不是调用功能。
或者,如果你正在编译C ++代码,编译器会将括号的内容解释为变量igraph_static_power_law_game
的初始值,并抱怨单个int
变量不需要多个初始化。
无论哪种方式,写作:
igraph_static_power_law_game(&g, 25000, 25000, 2.16104, -1, 0, 0, 1);
修复了即时编译错误。你可能应该使用类似的东西:
if (igraph_static_power_law_game(&g, 25000, 25000, 2.16104, -1, 0, 0, 1) != 0)
…report error…
这样如果函数失败,你就会知道它。