C传递指针

时间:2011-04-29 00:52:54

标签: c pointers

static void increment(long long *n){
  (*n)++;
}

static void mult2(long long *n){
  (*n) = (*n)*2;
}

struct counter{
  long long counter;
};

struct counter* cp = malloc(sizeof(struct counter));
cp[0].counter = 5;
increment(cp);

printf("Expecting a 6 : %lld.\n", cp[0].counter);

嗨,这是我的代码的一部分,我实际上想要增加或x2一个计数器, 但是我一直在论证和论证类型上得到错误。

2 个答案:

答案 0 :(得分:3)

struct count和long long是不同的类型。

尝试

increment(&(cp->counter));

使用cp[0].counter = 5代替cp->counter = 5非常棒,IMO。

答案 1 :(得分:2)

您正在将struct counter *传递给期望long long *的函数。那不行。你可能意味着increment(&(cp[0].counter))