Mengapa memanggil alloc( )
sebagai parameter ke pemanggilan fungsi lain seperti ini func(x, alloca(size), z);
dianggap salah Menurut buku berjudul the linux programming interface
Hal ini karena ruang tumpukan yang dialokasikan oleh alloca() akan muncul di tengah ruang untuk argumen fungsi (yang ditempatkan di lokasi tetap dalam bingkai tumpukan). Sebagai gantinya, kita harus menggunakan kode seperti ini:
void *y; y = alloca(size); func(x, y, z);
padahal ini salah
func(x, alloca(size), z); /* WRONG! */
bukankah 2 bagian itu seharusnya setara. Yang pertama alloca
dipanggil terlebih dahulu kemudian func
dipanggil dengan nilai kembaliannya, jadi jika seseorang dapat menjelaskan bagaimana alloca
mengalokasikan memori pada tumpukan yang membuat kedua pendekatan berbeda.
the linux programming interface
akan mengedit pertanyaan dengan kutipan dari buku tersebut - person Khaled   schedule 16.09.2020