我想兩個變量的地址比較內存變量比較存儲器地址:檢查,並針對不同類型的
chunk_t *old_chunk, *new_chunk;
if(&(old_chunk + 1 + old_chunk->size) == &new_chunk) { }
這裏是原型chunk_t:
typedef struct chunk_tag {
struct chunk_tag *next; /* next node in list */
int size; /* size of node in units, not bytes */
} chunk_t;
我得到的編譯器我的if語句有關「左值需要作爲一元操作數」的錯誤。我認爲這是因爲我添加了一個int old_chunk-> size和一個chunk_t old_chunk,所以我在if語句中將type old_chunk-> size作爲chunk_t,編譯器告訴我「轉換爲非標量類型請」
你的new_chunk應該像這樣聲明嗎? new_chunk或* new_chunk? – 2012-03-04 20:37:25
我的錯,它在代碼中被聲明爲一個指針,但是當我重寫它時我有一個錯字。謝謝 – 2012-03-04 20:39:20
你想比較指向'chunk_t'對象的指針地址,還是'chunk_t'對象本身的地址?這是個很大的差異。 – Irfy 2012-03-04 20:44:56