Как правильно создать динамический массив структур - 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инициализируется адресом выделенного блока памяти.