Я знаю, что память, распределенная динамически, как показано ниже, может быть бесплатной, как показано ниже:
int *array = malloc(sizeof(int) * 100);
memset(array,0,sizeof(int) * 100);
// use the array
free(array);
(Является ли пример выше применимым только к C++ или к C и C++?)
Но я не знаю, должен ли я освобождать его, когда он используется, как показано ниже (простой язык C):
int array[3];
array[0] = 0;
array[1] = 1;
array[2] = 2;
И в чем разница между двумя методами для создания массива?
Большое спасибо!
Нет, вам не нужно освобождать массив во втором примере, так как вы не malloc'ing его.
О различии:
Разница между декларацией и malloc
В C++ вы обычно хотите использовать new/delete, но malloc/free также работает.