在 C 中更改结构的地址

标签 c pointers struct

假设我得到了一个结构,我需要将它的所有属性分配给一个特定的地址。下面的代码给我一个条件错误,但我并没有试图评估它。

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/

相关文章:

android - 我们可以访问我的安卓手机的麦克风驱动程序吗

c++ - 复制指针列表没有循环

c - 修改学生结构体数组 array c 中的元素

c - C中结构数组的静态初始化

c++ - 如何动态分配涉及指针的结构?

c - 交换字符串按值而不是引用传递?

c - 如何使用 valgrind gdb 或任何其他选项检测未释放的分配?

c++ - 为什么我们在传递动态二维数组时不需要列数?

c++ - (C++) 将指针分配给字符串的一部分

c++ - 一个指针可以多次删除c++吗?