Об обсуждении динамической памяти здесь: "Введение в указатели 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";
Автор действительно не проливает много света на то, почему я должен предпочесть первый метод второму. Или более конкретно: как это более «предсказуемо и гибко»?