Lpp*_*Edd 0 pointers rpgle ibm-midrange
知道那ptr <> *null,
两段代码功能相同吗?
dealloc(en) ptr;
ptr = %alloc(500);
Run Code Online (Sandbox Code Playgroud)
和
ptr = %realloc(ptr:500);
Run Code Online (Sandbox Code Playgroud)
没有.
%realloc()保存ptr指向的存储的当前值.
因此,如果没有足够的空间来扩大现有空间,那么为ptr返回相同的值.系统会将字节从原始空间复制到新空间.
从手册:
%REALLOC(重新分配存储)
返回指针指向的堆存储具有与ptr指向的堆存储相同的值.如果新长度长于旧长度,则额外存储未初始化.