-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 回答