g ++は、配列を引数として渡すときに配列サイズの違いを無視しているようです。つまり、以下は。を使用しても警告なしでコンパイルされます-Wall
。
void getarray(int a[500])
{
a[0] = 1;
}
int main()
{
int aaa[100];
getarray(aaa);
}
これで、ポインターを渡す基本的なモデルを理解しました。明らかに、関数をとして定義することができますgetarray(int *a)
。ただし、配列サイズを明示的に指定した場合、gccは少なくとも警告を発行することを期待していました。
この制限を回避する方法はありますか?(私はゲストブースト::配列は1つの解決策ですが、C ++に昇格したcスタイルの配列を使用した古いコードがたくさんあります...)