Странное поведение примера "03 - Preserved Variables"
Решил поэкспериментировать с примером "03 - Preserved Variables" для Code-ключей. В оригинальном примере загружаемый код вызывается дважды: один раз с параметром dwP1=1 (чтобы сохранить буфер в RAM-ключа), второй раз с параметром dwP2=2 (чтобы получить содержимое из RAM-ключа).
Оказалось, что если второй раз вызвать загружаемый код с параметром dwP1=3 (так чтобы ничего не выполнялось и вернулась -1), то в массив abInBuffer все равно записывается содержимое RAM ключа, хотя перед вызовом этот массив явно обнуляется, а внутри ключа (в коде) явного копирования не происходит. Сначала решил, что каким-то образом iodata[] и buffer[100] указывают на одну и ту же область памяти, но потом проверил адреса массивов и они оказались разные.
Поясните, пожалуйста, почему в массив abInBuffer (в основной программе) автоматически записывается содержимое buffer[100] (из ключа), несмотря на то, что я передаю dwP1=3, и соответственно, код копирования не выполняется (проверял)?