GML ファイルを生成できるプログラムを作成する必要があります。
この目的のために、関数を実装しましたGetEdges
。この関数は 3 つの配列を返す必要があります (参照渡し)。
関数のシグネチャは次のようになります。
bool GetEdges(DG_NODE_ID **sourceIds, DG_NODE_ID **destIds, int **weights, int *count)
関数内でスペースをmallocしたい:
*sourceIds = (DG_NODE_ID *) malloc(cntEdges * sizeof (DG_NODE_ID));
4 つのノードを使用するとすぐに、次の出力が得られます。
グラフ: malloc.c:2451: sYSMALLOc: アサーション `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size)
= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1)) ) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' 失敗しました。
私はすべてを試しましたが、4 つのノードを使用した後にこれが失敗する理由がわかりません。
ソースコード全体をアップロードしました:ダウンロード - ソースコード