unsignedshortの配列を使用するbigIntデータ型を作成しています。一部の関数では、最上位のshortが使用される場合と使用されない場合がありますが、念のため常に割り当てられます。基本的な数学演算による無限のメモリ消費を防ぐために、配列を次のように再割り当てしたいと思います。
toReturn.numArray = realloc(toReturn.numArray, (sizeof(unsigned short)) * (toReturn.numElements - 1))
しかし、最上位ビットが解放される(理想的)のか、最下位ビットが解放されるのかはわかりません。