配列を定義できること例:
int a[] = {1,2,3};
は非常に便利ですが、配列aはr値であるため、後でaの値を変更することはできません。
a[] = {4,5,6};
これを実行したいコンテキストは、関数に配列をフィードして出力をテストする一連の単体テストを作成することです。異なる入力を使用して同じ関数でテストを実行しており、入力配列に一意の名前を付ける必要がないようにしたいと考えています。たとえば、次のようにする必要があります。
int test1_a[] = {1,2,3};
/* calls to functions */
int test2_a[] = {4,5,6};
/* calls to functions */
また、配列へのポインタを関数に渡したい場合は、最初に次のようにキャストする必要があります。
int a[] = {1,2,3};
int *b = a;
my_func(&b);
このようにr値へのポインタを渡すことは機能しません:
my_func(&a);
私の質問は、これらの制限に悩まされることなく、値の配列を簡単に初期化する他の方法があるかどうかです。(特に、各テストに一意の配列名のセットがなくても、多くの同様の単体テストを簡単に記述できるようにするため)