我正在尝试比较内存中两个变量的地址:
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 语句中将 old_chunk->size 类型化为一个 chunk_t,编译器告诉我“请求转换为非标量类型”