Q我怎样才能在运行时设置数组的大小?
我怎样才能避免使用固定大小的数组?
A数组和指针之间的等价性(参见问题 6.3)允许使用指针来malloc分配的内存有效地模拟数组。执行
#include <stdlib.h> int *dynarray; dynarray = malloc(10 * sizeof(int));(并且如果调用malloc成功),您可以引用dynarray[i](对于i从 0 到 9)几乎就像dynarray是一个传统的、静态分配的数组(int a[10])。唯一的区别在于sizeof不会给出“数组”的大小(参见问题 7.28。另请参见问题 1.31b、6.16、7.7 和 7.29)。