关于动态内存的讨论:“C 指针和动态内存简介”
作者指出:
像这样的内存块可以有效地用作更灵活的数组。这种方法实际上在现实世界的 C 程序中更为常见。它也比“可变大小数组”更具可预测性和灵活性
他所说的内存块类型是这样的:
const int size = 5;
int * array = calloc(size, sizeof(int));
然后使用另一个指针遍历数组:
int * index = array;
for (i = 0; i < size; i++) {
*index = 1; // or whatever value
index++;
}
我的问题是这种方法比像这样的标准可变大小数组更好吗?:
int array[variable];
或动态:
char name[] = "Nick";
作者并没有真正解释为什么我应该更喜欢前一种方法而不是后者。或者更具体地说:它如何更“可预测和灵活”?