Rustのメモリ解放に関してOptionにNoneを設定するだけで問題無いでしょうか?
libraryとして外部から利用する事を想定しています。
global領域にstart/stopにてメモリの確保と破棄を行うケースがあると思いますが、
rustではOptionにNoneを設定するだけで問題無いのでしょうか?
下記がC言語のケース
c code.
#include <stdio.h>
typedef struct {}DATA;
static DATA* gData = NULL;
void start(){
if(gData == NULL) gData = (DATA*)malloc(sizeof(DATA));
}
void stop() {
free(gData);
data = NULL;
}
Rustによるケース
rust code
struct DATA {}
static mut RUSTDATA : Option<DATA> = None;
#[no_mangle]
fn start(){
unsafe{
RUSTDATA = Some(DATA{});
}
}
#[no_mangle]
fn stop(){
unsafe{
RUSTDATA = None;
}
}