Хочу использовать динамический массив, содержащий структуры. Этот массив находится внутри другой структуры (это, наверно, не важно). Количество элементов массива заранее неизвестно. Как я вычитал, для этого нужно использовать функцию realloc при добавлении нового элемента в массив. Но когда я добавляю в код вот эти строки - описание структуры данных и выделение памяти
Код
typedef struct {float k; float b; float Zmin;} Zarray_t;
typedef struct {float k; float b; float PHmin;} PHarray_t;
typedef struct {
uint32_t gZmin;
uint32_t gZmax;
uint32_t gPHmin;
uint32_t gPHmax;
Zarray_t Zarray[nF_cal-1];
PHarray_t PHarray[nF_cal-1];
} CalDataForF_t;
typedef struct {
CalDataForF_t *CalDataForF;
uint32_t freq[nF_cal];
} CalData;
в хедер иtypedef struct {float k; float b; float PHmin;} PHarray_t;
typedef struct {
uint32_t gZmin;
uint32_t gZmax;
uint32_t gPHmin;
uint32_t gPHmax;
Zarray_t Zarray[nF_cal-1];
PHarray_t PHarray[nF_cal-1];
} CalDataForF_t;
typedef struct {
CalDataForF_t *CalDataForF;
uint32_t freq[nF_cal];
} CalData;
Код
CalData_str.CalDataForF=malloc(sizeof(CalDataForF_t));
в тело main() и пытаюсь пошагово походить по программе, зашитой в МК, то я даже в main не захожу, время идёт (смотрю в Keil'e), а до брейкпоинта, находящегося на main() я не дохожу.Читал здесь, что malloc и realloc используют кучу, и что её нужно предварительно инициализировать. Подскажите, пожалуйста, как её правильно инициализировать. Или подскажите в чём проблема, если она не в куче.
Заранее спасибо.