私はこの質問を見ましたが、それはそれを行う方法を説明するのではなく、単に私がやりたいことを示しています。
C
動的メモリ割り当てをサポートするシステムとサポートしないシステムで実行されるライブラリがあります。malloc
ヒープが使用できないときに静的配列からメモリを割り当てる独自の関数を作成して、システム間の移行を簡単にしたい。
私は自分の問題に対する完全に具体化された解決策を探していませんが、例を含むブログ投稿が役に立ちます。いつ、いつ使用しないかを決めるのmalloc
は簡単です。しかし、静的配列からメモリを割り当てる方法を理解するのに少し時間がかかります。
static char my_memory[10000] = { 0 };
static void *my_malloc(size_t size) {
// Here, I want to allocate 'size' in 'my_memory'.
return NULL;
}
static void *my_free(void* memory) {
// Here, I want to free 'memory' from 'my_memory'.
}
編集:
私のニーズはここでは非常に単純であり、この方法で割り当てられるメモリはほとんどありません(そしてほとんど解放されません)。SteveJessopのシンプルなソリューションがぴったりです。