struct Graph
{
Node *nodes;
int numNodes;
float **adj;
};
void insert(Graph *graph)
{
graph->numNodes++;
graph->adj = (float **)realloc(graph->adj, graph->numNodes * sizeof(float*));
for (int i = 0; i < graph->numNodes - 1; i++)
graph->adj[i] = (float *)realloc(graph->adj[i], graph->numNodes * sizeof(float));
graph->adj[graph->numNodes - 1] = (float*)calloc(graph->numNodes, sizeof(float));
}
void D_printGraph(Graph *graph)
{
for (int i = 0; i < graph->numNodes; i++)
{
for (int j = 0; j < graph->numNodes; j++)
printf("%f\t", graph->adj[i][j]);
printf("\n");
}
}
По-нормальному измененный массив должен заполняться нулями, а получается вот что (массив 2x2, то есть размер массива изменен 2 раза):
Для массива 1х1 выводится 0, как и должно быть.