Как правильно создать динамический массив структур - 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;
}

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

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

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


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

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

13   голосов , оценка 3.846 из 5
Похожие ответы