-1
#include<stdio.h>

typedef struct node
{
    int val;
    struct node *link;
}hop;

main()
{
    int c;
    hop *m,*t;
    m=(hop *)malloc(sizeof (hop));
    m->val=10;
    t=change_val(m);
    printf("%d",t->val);
}

hop *change_val(node* m)
{
    m->val=20;
    return m;
}

しかし、関数と代入でエラーが発生しました。mの前の記号を変えてみました。ダブルポインターも使ってみました。助けて。

4

2 に答える 2

3

関数を使用する前に宣言する必要があります。

hop *change_val(hop* m);

int main()
{
.....

、構造体の名前と一貫性を保ち、の戻り値をキャストしないで、動的に割り当てたメモリの戻り値の型をmalloc提供します。mainfree

于 2012-12-15T21:37:03.947 に答える
0

エラーの理由はnode、関数定義の型が正しくないためです。

次のいずれかを使用します。

hop *change_val(struct node* m)
{
...
}

また

hop *change_val(hop* m)
{
...
}
于 2012-12-15T21:43:39.077 に答える