【问题标题】:dealloc + %alloc() vs %realloc() - RPGLEdealloc + %alloc() 与 %realloc() - RPGLE
【发布时间】:2017-05-25 14:07:40
【问题描述】:

知道ptr <> *null, 这两段代码在功能上是否相同?

dealloc(en) ptr;
ptr = %alloc(500);

ptr = %realloc(ptr:500);

【问题讨论】:

  • 请务必在 QRPLOBJ 中查找未正确释放的空间。

标签: pointers ibm-midrange rpgle


【解决方案1】:

没有。

%realloc() 保存ptr指向的存储的当前值。

因此,如果没有足够的空间来扩大现有空间,则为 ptr 返回相同的值。系统会将字节从原空间复制到新空间。

来自手册:
%REALLOC (Reallocate Storage)

返回指针指向的堆存储与ptr指向的堆存储具有相同的值。如果新长度比旧长度长,则未初始化额外存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多