我试图创建一个基于数组的线性表,然后编译了这个代码:
char size = 0;
char testarray[10];
int main() {
add('a'); add('b'); add('c');
add('d'); add('e'); add('f');
add('g'); add('h'); add('i');
add('j'); add('k'); add('l');
add('m'); add('n'); add('o');
print();
return 0;
}
void add(char newchar) {
testarray[++size] = newchar;
}
void print() {
char i = 0;
for (i = 0; i <= size; i++) {
printf("%c ", testarray[i]);
}
}
我使用gcc arraytest.c
编译它,但数组工作得很好。这是不是意味着数组默认是可变长度的?我以为这是C99才有的特性。
它在Gentoo (gcc version 4.5.3 (Gentoo 4.5.3-r2 p1.1, pie-0.4.7
)和Ubuntu (gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3
)下都编译通过。
哦,这不是有点危险吗?