知道这两段代码在功能上ptr <> *null,
相同吗?
dealloc(en) ptr;
ptr = %alloc(500);
和
ptr = %realloc(ptr:500);
No.
%realloc(( 保存 ptr 指向的存储的当前值。
因此,如果没有足够的空间来扩大现有空间,则返回相同的 ptr 值。 系统会将字节从原始空间复制到新空间。
从手册
:%REALLOC (重新分配存储(
返回指针指向的堆存储与 ptr 指向的堆存储具有相同的值。如果新长度比旧长度长,则未初始化附加存储。