C99 に準拠していないコンパイラを実行している可能性があります (おそらくそれよりも古いため) (既に述べたように、コードは C99 準拠のコンパイラでコンパイルする必要があります)。
これらのコンパイラでは、次の形式の配列に対して
char a[x];
x
定数である必要があります。
使用できますconst
:
const int lenA=10, lenB=15;
char consensus_a[lenA],consensus_b[lenB];
またはenum
:
enum
{
lenA = 10,
lenB = 15
};
char consensus_a[lenA], consensus_b[lenB];
または#define
:
#define lenA 10
#define lenB 15
char consensus_a[lenA], consensus_b[lenB];
またはmalloc
(定数にしたくない場合):
char *consensus_a = malloc(lenA),
*consensus_b = malloc(lenB);
技術的には次のようになります。
char *consensus_a = malloc(lenA*sizeof(char)),
*consensus_b = malloc(lenB*sizeof(char));
しかしsizeof(char)
1 なので、用語を含める必要はありません。
を使用する場合は、使用後にそれらmalloc
も忘れないでください。free
free(consensus_a);
free(consensus_b);