知道ptr <> *null,
这两段代码功能相同吗?
dealloc(en) ptr;
ptr = %alloc(500);
和
ptr = %realloc(ptr:500);
答案 0 :(得分:6)
没有
%realloc()保存ptr。
指向的存储的当前值因此,如果没有足够的空间来扩大现有空间,那么为ptr返回相同的值。系统会将原始空间中的字节复制到新空间。
从手册:
%REALLOC (Reallocate Storage)
返回指针指向的堆存储具有与ptr指向的堆存储相同的值。如果新长度超过旧长度,则额外存储空间未初始化。