假设我得到了一个结构,我需要将它的所有属性分配给一个特定的地址。下面的代码给我一个条件错误,但我并没有试图评估它。
struct header block_o_data;
block_o_data.a = 1;
block_o_data.b = 2;
void* startingAddress = sbrk(0);
&block_o_data = *address;
请让我知道我做错了什么。
最佳答案
在对 block_o_data
的赋值中,您获取它的地址并尝试为其赋值。变量的地址不是左值,这意味着表达式不能出现在赋值的左侧。
您需要声明一个指向结构的指针,然后为其分配值实际所在的地址:
struct header *block_o_data;
void* startingAddress = sbrk(0);
block_o_data = startingAddress;
关于在 C 中更改结构的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35801835/