首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在igraph上生成igraph_degree_sequence_game

无法在igraph上生成igraph_degree_sequence_game
EN

Stack Overflow用户
提问于 2015-03-15 22:51:54
回答 1查看 149关注 0票数 1

我想要使用igraph_degree_sequence_game图形生成器来生成一个网络。igraph库上的示例在我的计算机上工作得很好,但是如果我更改为其他一些简单的度分布(请参阅下面的代码),我得到了以下错误:

代码语言:javascript
复制
Error at games.c:830 :degree sequence game (simple), Out of memory.

我希望这会给我一个没有方向的网络,它有4个节点,每个节点都有3个邻居。我不知道我在哪里做错了。感谢您的友好帮助和回应。

代码语言:javascript
复制
#include <igraph.h>

int main() {
  igraph_t g;
  igraph_vector_t outdeg, indeg, vec;
  igraph_bool_t is_simple;

  igraph_vector_init_real(&outdeg, 4,3,3,3,3);
  igraph_vector_init(&vec, 0);

  /* checking the simple method, undirected graphs */
  igraph_degree_sequence_game(&g, &outdeg, 0, IGRAPH_DEGSEQ_SIMPLE);
  if (igraph_is_directed(&g) || igraph_vcount(&g) != 4)
  return 1;
  if (igraph_degree(&g, &vec, igraph_vss_all(), IGRAPH_OUT, 1))
  return 2;
  igraph_vector_print(&vec);
  igraph_destroy(&g);


  igraph_vector_destroy(&vec);
  igraph_vector_destroy(&outdeg);
  igraph_vector_destroy(&indeg);

  return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-16 00:05:56

我想这个示例应该更新,因为igraph_vector_init_real不是公共API的一部分。无论如何,问题是(顾名思义),这个函数需要真实的(即双)字面值。也就是说,正确的使用方法是

代码语言:javascript
复制
igraph_vector_init_real(&outdeg, 4, 3.0, 3.0, 3.0, 3.0);

顺便说一句。代码中的另一个错误是调用igraph_vector_destroy on indeg,它从未初始化过。这可能会或可能不会生成运行时错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29067158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档