2011-04-29 86 views
1
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計數器, 但我一直在參數和參數類型收到錯誤。ç傳遞指針

+0

你會得到什麼錯誤?哪裏?什麼線? – wilhelmtell 2011-04-29 00:55:01

+0

「我不斷收到錯誤」?什麼錯誤?什麼線?錯誤說了什麼? – EboMike 2011-04-29 00:55:03

+2

struct count和long long是不同的類型,不是嗎? – 2011-04-29 00:55:58

回答

3

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

嘗試的cp[0].counter = 5,而不是cp->counter = 5

increment(&(cp->counter));

用法是相當的bizzare,IMO。

+0

對不起,非常非常愚蠢的錯誤... pointer happens = p – Jono 2011-04-29 01:07:00

2

您正將一個struct counter *傳遞給期望long long *的函數。這是行不通的。你可能意思是increment(&(cp[0].counter))