graphのAdjacency Matrixを実装するためのコードを書いていますが、ランタイムエラーが発生しています。グラフの隣接行列
コード:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct Graph{
int V;
int E;
int **Adj;
};
void test(struct Graph *graph)
{
graph->E = 5;
graph->V = 4;
graph->Adj = malloc(sizeof(graph->V * graph->V));
graph->Adj[0][0] = 9;
graph->Adj[0][1] = 7;
graph->Adj[0][2] = 2;
graph->Adj[0][3] = 5;
printf("Hello %d\n",graph->Adj[0][2]);
}
int main()
{
struct Graph *graph = malloc(sizeof(struct Graph));
test(graph);
}
私が主な機能で同じことを行う場合、それworks.I私がテスト関数を記述し、それを行うとき、私が間違っているのかを理解していませんか?メイン関数で行わ
コード:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct Graph{
int V;
int E;
int **Adj;
};
int main()
{
struct Graph *graph = malloc(sizeof(struct Graph));
graph->E = 5;
graph->V = 4;
graph->Adj = malloc(sizeof(graph->V * graph->V));
graph->Adj[0][0] = 9;
graph->Adj[0][1] = 7;
graph->Adj[0][2] = 2;
graph->Adj[0][3] = 5;
printf("Hello %d\n",graph->Adj[0][2]);
}
取得ランタイムerror.Whileデバッグtest function
のためには、それがgraph->Adj = malloc(sizeof(graph->V * graph->V));
まで動作しますが、graph->Adj[0][0] = 9;
でそれはerror.Whyを与えます?
エラーとは何ですか? – philo
エラーを更新しました。 –