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;
*(data+ PARAMETER_COUNT_POSITION)
оставляетdata
без изменений. указательdata
не увеличивается.data[3]=2
? Мы счастливы, пытаясь решить проблемы, но я не вижу здесь проблемы, не могли бы вы уточнить?