c++ - 除了直接访问之外,还有其他方法可以更改内存中的值吗?

标签 c++ c linux

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

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

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

除了通过递增指针直接改变值外,还有什么方法可以改变值吗?

*(data1+ PARAMETER_COUNT_POSITION)  =  SOmeValue;  

最佳答案

您已经正确地做到了:

*(data1 + PARAMETER_COUNT_POSITION) = SomeValue;

或:

data1[PARAMETER_COUNT_POSITION] = SomeValue;

或者:

PARAMETER_COUNT_POSITION[data1] = SomeValue;  // trollolol

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

只有你这样做才会发生这种情况:

data1 += PARAMETER_COUNT_POSITION;
*data1 = SomeValue;

关于c++ - 除了直接访问之外,还有其他方法可以更改内存中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853420/

相关文章:

c++ - 抑制有关包含文件中的#pragma pack 的警告

编译 geniePi.h 4D Systems

linux - 如何将很棒的 WM 与 LXSession(LXDE、Lubuntu)结合使用

c++ - C++中的文件删除

c++ - 接口(interface)继承

c++ - looking for c++ member function override (non virtual) 解决方案

结构而不是数组的运算符的 C 地址?

c - 如何在函数之间传递数组

linux - 我在哪里保存gunicorn_start.bash文件

c - 为什么同一个程序在不同的运行中堆栈大小不同?