您可能正在运行不符合 C99 的编译器(可能是因为它比 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));
butsizeof(char)
是 1,因此不需要包含该术语。
使用时malloc
,请记住free
在使用后也将它们:
free(consensus_a);
free(consensus_b);