水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:malloc之后,有什么办法可以尝试扩大空间?
20楼
|
webcat
|
2021-01-21 01:54:26
|
展开
元素的地址不要用绝对的,用相对于首元素的偏移值,其实就是下标
realloc 分配的地址如果是移动了的,就算分配失败,用你说的方案分配、拷贝
只是效率是差了些
【 在 xieyf 的大作中提到: 】
: 只是尝试,失败能给个信息。
:
: realloc直接失败后就分配一块新的,不想要这样的。
: ...................
--
FROM 219.100.37.*
23楼
|
webcat
|
2021-01-21 13:24:51
|
展开
如果对拷贝内存的开销能接受的话,对于变长对象的问题,可以使用 char* 指针做偏移计算,再强制类型转换
【 在 xieyf 的大作中提到: 】
: 为了提升性能, 内部访问元素都是用指针的.
: 对象是变长对象, 没法按照下标访问. 但是对象地址的连续性, 对性能提升很有效.
: 所以malloc之后, 对象地址不能改动.
: ...................
--
FROM 111.197.81.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版