Как правильно создать динамический массив структур - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Привет всем! Мне нужна помощь по C . У меня есть такая структура :
Листинг программы
  1. typedef struct cell cell;
  2. struct cell
  3. {
  4. short type;
  5. double dx;
  6. double pos;
  7. };
И я пытался разместить и инициализировать массив таким образом:
Листинг программы
  1. grid = (struct cell *)calloc(ncells*sizeof(struct cell),sizeof(struct cell));
но такая схема не работает. Как правильно задать динамический массив структур?

Решение задачи: «Как правильно создать динамический массив структур»

textual
Листинг программы
  1. typedef struct cell
  2. {
  3. short type;
  4. double dx;  
  5. double pos;
  6. } cel;
  7. if(!(grid=(cel*)calloc(ncells,sizeof(*cel)))
  8. {
  9. printf("Memory is not enough");
  10. return 0;
  11. }

Объяснение кода листинга программы

  1. Объявляется структура cell с полями type, dx и pos.
  2. Проверяется достаточность выделенной памяти для динамического массива структур.
  3. Если выделенной памяти недостаточно, выводится сообщение об ошибке и возвращается 0.
  4. Иначе, переменная grid инициализируется адресом выделенного блока памяти.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы