0
ptr <> *null,
は、機能的に同じ2つのコードです。dealloc +%alloc()vs%realloc() - RPGLE
dealloc(en) ptr;
ptr = %alloc(500);
と
ptr = %realloc(ptr:500);
ptr <> *null,
は、機能的に同じ2つのコードです。dealloc +%alloc()vs%realloc() - RPGLE
dealloc(en) ptr;
ptr = %alloc(500);
と
ptr = %realloc(ptr:500);
号
%用のrealloc()ptrがストレージの現在の値を保存します。
したがって、既存のスペースを拡大するのに十分なスペースがない場合、ptrに同じ値が返されます。システムは元のスペースから新しいスペースにバイトをコピーします。
マニュアルから:
%REALLOC (Reallocate Storage)
ヒープ記憶域は、返されたポインタがptrがヒープ・ストレージと同じ値を有するが指します。新しい長さが古い長さより長い場合、追加のストレージは初期化されません。
正しく割り振り解除されていない領域については、必ずQRPLOBJを参照してください。 – danny117