在C中更改struct的地址

时间:2016-03-04 17:01:58

标签: 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;

请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:3)

sys.setcheckinterval的作业中,您将获取其地址并尝试为其指定值。变量的地址不是左值,这意味着表达式不能出现在赋值的左侧。

您需要向结构声明指针,然后为其指定值实际存在的地址:

sys.getcheckinterval

答案 1 :(得分:1)

假设您有这样的结构:

    private static void ValueChangedHandler(AsyncLocalValueChangedArgs<IRequestContext> asyncLocalValueChangedArgs)
    {
        var previousValue = asyncLocalValueChangedArgs.PreviousValue;
        var currentValue = asyncLocalValueChangedArgs.CurrentValue;
        var contextChanged = asyncLocalValueChangedArgs.ThreadContextChanged;
        if (contextChanged && currentValue == null && previousValue != null)
        {
            _requestContext.Value = previousValue;
        }
    }
那么你可能需要这样的东西:

struct mystruct {
    int a;
    char b;
};