Предположим, что у вас есть структура, содержащая указатель на массив и его размер, например:
typedef struct {
int * array;
int arr_size;
}IntArray;
и хотите иметь это внутри другой структуры, это можно сделать двумя способами:
typedef struct{
IntArray ia;
//other variables
}Base1;
typedef struct{
IntArray * ia;
//other variables
}Base2;
Что происходит, когда я динамически выделяю Base1
и Base2
(например, Base1 b1 = (Base1 *)malloc(sizeof(Base1));
) и почему я должен выбирать один способ, а не другой?
array
имеет известный размер, то массив также может существовать на месте:int array[1234]
что позволяет полностью избежать динамического выделения (или указания на массив, размещенный в стеке). - person Dai   schedule 22.07.2018