除了直接访问之外,有没有办法改变内存中的价值?

时间:2014-02-18 12:12:01

标签: c++ c linux

char *data // Points to some memory having 001E 038CD 0923 8723 

我的目的是将值03更改为内存中的02,但不想对数据指针执行任何操作。

我考虑将数据复制到另一个变量(data1)并进行编辑。

除了通过递增指针直接改变值之外,有没有办法改变值?

*(data1+ PARAMETER_COUNT_POSITION)  =  SOmeValue;  

1 个答案:

答案 0 :(得分:4)

你已经正确地做到了:

*(data1 + PARAMETER_COUNT_POSITION) = SomeValue;

或:

data1[PARAMETER_COUNT_POSITION] = SomeValue;

或:

PARAMETER_COUNT_POSITION[data1] = SomeValue;  // trollolol

这些是等效的,它们都不会改变data1本身的值。

只有你这样做才会发生:

data1 += PARAMETER_COUNT_POSITION;
*data1 = SomeValue;