如何拆分一个分配区域,使两个区域可以分别重新分配?
How to split an allocation region so that the two regions can be reallocated separately?
我想在特定点将分配的内存区域一分为二,以便这两个区域可以 realloc
分开。我想这样做是因为我想在区域中间释放space。
我的想法是做这样的事情:
┌───────────────────────────────┐
│ Allocated │
└───────────────────────────────┘
↓
split( );
↓
┌───────────────┬───────────────┐
│ Allocated │ Allocated │
└───────────────┴───────────────┘
↓
realloc( );
↓
┌───────────┐ ┌───────────────┐
│ Allocated │ │ Allocated │
└───────────┘ └───────────────┘
这在 Rust 中可行吗?如果可以,怎么做?
这是(目前)不可能的。
Rust 的内存分配 API 在 the alloc
module 中。如您所见,那里没有提供您需要的功能。
理论上,分配器可以提供这样的功能。然而,在实践中,这通常不被提供或使用。据我所知,C 中的标准分配 API 也不提供此功能。
我想在特定点将分配的内存区域一分为二,以便这两个区域可以 realloc
分开。我想这样做是因为我想在区域中间释放space。
我的想法是做这样的事情:
┌───────────────────────────────┐ │ Allocated │ └───────────────────────────────┘ ↓ split( ); ↓ ┌───────────────┬───────────────┐ │ Allocated │ Allocated │ └───────────────┴───────────────┘ ↓ realloc( ); ↓ ┌───────────┐ ┌───────────────┐ │ Allocated │ │ Allocated │ └───────────┘ └───────────────┘
这在 Rust 中可行吗?如果可以,怎么做?
这是(目前)不可能的。
Rust 的内存分配 API 在 the alloc
module 中。如您所见,那里没有提供您需要的功能。
理论上,分配器可以提供这样的功能。然而,在实践中,这通常不被提供或使用。据我所知,C 中的标准分配 API 也不提供此功能。