struct member不是全局可访问的,为什么呢?

时间:2017-10-14 23:26:46

标签: c

public void setCallback(C callback) {
    mCallback = callback;
}

在上面的代码中我将值存储在头5中,但是当我调用函数规范时,我打印头的值,它不显示5,我怎么解决这个?我想在另一个函数中使用相同的值

1 个答案:

答案 0 :(得分:0)

偶然事项:分配内存时,应该是sizeof(cb),而不是int。如果您尝试访问ptr->tail,则会发生崩溃。接下来,您应该将指向结构的指针传递给norm(cb *ptr),并且不要在norm内部分配内存,只需使用传递的指针即可。

typedef struct {
    int head;
    int tail;
}cb;

int norm(cb *ptr){
    printf("%d",ptr->head);
} 

void main(){
    cb *ptr=malloc(sizeof(cb));
    ptr->head=5;
    norm(ptr);
}