-1

割り当てができない理由を理解しようとしてg.node = n1;います。

誰か説明できますか?アイデアは、構造を使用してノードでグラフを作成することです。この方法でうまくいくと思いましたがerror: incompatible types in assignmentg.node = n1;

#include <stdio.h>

typedef struct
{
    int value;
    int *edges;
    int *adj;
}  Node;

typedef struct
{
    Node *node;

} Graph;

void resize_array(char *, int);
void copy_array  (char *, char *);
int main()
{
    Graph g;
    Node n1, n2;
    int edgesS[1] = {9};
    int adjS[1] = {5};
    n1.edges = edgesS;
    n1.adj = adjS;
    n1.value = 1;
    g.node = n1;
    return 0;
}

void resize_array(char * array, int size){array[size] = '\0';}
4

3 に答える 3

4

g.nodeタイプですNode*n1、タイプNodeです。割り当ては次のように可能になります

g.node = &n1;

代わりは。単に;g.nodeを指していることに注意してください。Node1つのメモリは含まれていません。上記の単純な割り当てでn1は、スコープ外にg.nodeなると、を指すメモリが無効になります。

于 2012-11-21T22:07:41.087 に答える
3

ポインタに値を割り当てようとしています。代わりにn1のアドレスを取得してみてください。ただし、「機能させる」前に、それが何を意味するのかを1分間考えてください。

于 2012-11-21T22:07:52.023 に答える
2

Graphノードへのポインタが含まれています。目的を達成するには、新しいノードのアドレスを割り当てる必要があります。

g.node = &n1;
于 2012-11-21T22:08:30.667 に答える