【发布时间】:2017-05-25 14:07:40
【问题描述】:
知道ptr <> *null, 这两段代码在功能上是否相同?
dealloc(en) ptr;
ptr = %alloc(500);
和
ptr = %realloc(ptr:500);
【问题讨论】:
-
请务必在 QRPLOBJ 中查找未正确释放的空间。
标签: pointers ibm-midrange rpgle
知道ptr <> *null, 这两段代码在功能上是否相同?
dealloc(en) ptr;
ptr = %alloc(500);
和
ptr = %realloc(ptr:500);
【问题讨论】:
标签: pointers ibm-midrange rpgle
没有。
%realloc() 保存ptr指向的存储的当前值。
因此,如果没有足够的空间来扩大现有空间,则为 ptr 返回相同的值。系统会将字节从原空间复制到新空间。
来自手册:
%REALLOC (Reallocate Storage)
返回指针指向的堆存储与ptr指向的堆存储具有相同的值。如果新长度比旧长度长,则未初始化额外存储。
【讨论】: