Как правильно создать динамический массив структур - C (СИ)
Формулировка задачи:
Привет всем! Мне нужна помощь по C . У меня есть такая структура :
И я пытался разместить и инициализировать массив таким образом:
но такая схема не работает. Как правильно задать динамический массив структур?
Листинг программы
- typedef struct cell cell;
- struct cell
- {
- short type;
- double dx;
- double pos;
- };
Листинг программы
- grid = (struct cell *)calloc(ncells*sizeof(struct cell),sizeof(struct cell));
Решение задачи: «Как правильно создать динамический массив структур»
textual
Листинг программы
- typedef struct cell
- {
- short type;
- double dx;
- double pos;
- } cel;
- if(!(grid=(cel*)calloc(ncells,sizeof(*cel)))
- {
- printf("Memory is not enough");
- return 0;
- }
Объяснение кода листинга программы
- Объявляется структура
cell
с полямиtype
,dx
иpos
. - Проверяется достаточность выделенной памяти для динамического массива структур.
- Если выделенной памяти недостаточно, выводится сообщение об ошибке и возвращается 0.
- Иначе, переменная
grid
инициализируется адресом выделенного блока памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д