私は、ウィキペディアのC99可変長配列のこの例に出くわした:C99可変長配列ウィキペディアの例
float read_and_process(int n)
{
float vals[n];
for (int i = 0; i < n; i++)
vals[i] = read_val();
return process(vals, n);
}
は、この間違ってますか?私は、可変長配列がまだポインタであるという印象を受けています。これは、上記のコードが期限切れのポインタvalをprocess(...)関数に渡していることを意味します。
配列はポインタではありません。彼らはポインタに崩壊*するだけで簡単に迷惑をかけます。 – cHao
+1 "配列はポインターではありません"。 [comp.lang.c FAQ](http://c-faq.com)のセクション6も参照してください。 –