関数に渡す配列の大きさを, 関数に渡す引数で与えられる. // 以下は C99 のプログラムです. #include <stdio.h> // 配列の大きさを関数宣言で決められる. void func(int m, int data[m]) { int i; for(i=0; i<m; i++) data[i] *= 10; } int main(void) { int n, i; n = 10; int x[n]; // 配列のサイズを, プログラム実行時に与えられる. for(i=0; i<n; i++) x[i] = i; func(n, x); for(i=0; i<n; i++) printf("%d\n", x[i]); return 0; } ただし, 配列dataの大きさを決定する時点で, 大きさmが決まっている必要がある. 関数宣言は前から順に評価されるので, 上の例では