Есть ли способ изменить значение в памяти, кроме прямого доступа?

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

Мое намерение - изменить значение 03 на 02 в памяти, но не хочу ничего делать с указателем данных.

Я рассматриваю копирование данных в другую переменную (data1) и ее редактирование.

Есть ли способ изменить значение, отличное от прямого изменения значения, увеличивая указатель?

*(data1+ PARAMETER_COUNT_POSITION)  =  SOmeValue;  
  • 1
    *(data+ PARAMETER_COUNT_POSITION) оставляет data без изменений. указатель data не увеличивается.
  • 5
    Что не так с data[3]=2 ? Мы счастливы, пытаясь решить проблемы, но я не вижу здесь проблемы, не могли бы вы уточнить?
Показать ещё 2 комментария
Теги:

1 ответ

4
Лучший ответ

Вы уже делаете это правильно:

*(data1 + PARAMETER_COUNT_POSITION) = SomeValue;

или:

data1[PARAMETER_COUNT_POSITION] = SomeValue;

или:

PARAMETER_COUNT_POSITION[data1] = SomeValue;  // trollolol

Они эквивалентны, и ни одно из них не меняет значение самого data1.

Это произойдет только в том случае, если вы это сделаете:

data1 += PARAMETER_COUNT_POSITION;
*data1 = SomeValue;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню