質問
私は可変長の配列について懸念があります。アレイを動的に割り当てたい場合は、十分なメモリを割り当てることができない場合はnullを取得し、プログラムでこれに適切に応答できます。可変長さ配列を使用すると、この情報は表示されません。これで何をすべきですか?
解決
VLAは基本的に常に安全ではないことは正しいです。唯一の例外は、サイズよりも大きくしないようにする場合、固定サイズの配列を作成することができると感じます。その場合、固定サイズの配列を使用することもできます。 VLAが問題を解決できないこと(スタックオーバーフロー)とできることとの違いを生むことができると、ほとんどの場合、VLAを使用しないことをお勧めします。
しかし、VLAタイプが役に立たないという意味ではありません。 VLAは悪い/危険ですが、 ポインタからVLA タイプは非常に便利です。彼らは動的に挿入することを可能にします(via malloc
)次のように、次の寸法算術を手動で実行せずに多次元配列
size_t n;
double (*matrix)[n] = malloc(n * sizeof *matrix);
n-by-nマトリックスをアドレス指定できるようにするには matrix[i][j]
.
所属していません StackOverflow