- 主题:malloc之后,有什么办法可以尝试扩大空间?
只是尝试,失败能给个信息。
realloc直接失败后就分配一块新的,不想要这样的。
因为每个元素的地址需要固定,所以希望只扩容,如果不能扩容得采用其他的方法来分配。
--
FROM 221.222.21.*
如果realloc不成功, 就从内存池中分配了.
我的需求是,对象地址不可变, 但是尽量保持对象地址连续的, 如果不能保持连续, 那就算了.
所以不能让realloc给重新分配, 只允许它扩容.
【 在 here080 (hero080) 的大作中提到: 】
: 直接“采用其他的方法来分配”?
--
FROM 120.244.224.*
为了提升性能, 内部访问元素都是用指针的.
对象是变长对象, 没法按照下标访问. 但是对象地址的连续性, 对性能提升很有效.
所以malloc之后, 对象地址不能改动.
【 在 webcat (webcat) 的大作中提到: 】
: 元素的地址不要用绝对的,用相对于首元素的偏移值,其实就是下标
: realloc 分配的地址如果是移动了的,就算分配失败,用你说的方案分配、拷贝
: 只是效率是差了些
: ...................
--
FROM 120.244.224.*