结构体动态数组的定义及操作

这两天在写一个linux下的C项目,需要控制一张临时表,这张表由动态结构体数组构成。
需要实现动态数组的创建及其操作

结构体如下所示:
/*创建一个基站的动态数组的结构体*/
typedef struct base_array{
    int size ;
    int count ;
    struct base *data;
}base_array;
/*创建一个基站的结构体*/
typedef struct base{
    char id[6] ;
    int led;
    int way;
    struct locomotive *next ;
}base;

 

/*创建一个基站的动态数组*/
void create_base_table(base_array *L){
    int     number = 5 ;                    //基站动态数组的初始个数
    int     i;
    char    string[6] ;

    p = (base *)malloc(number*sizeof(base)) ;//提前分配基站内存

    L->size = number;
    L->count = 0 ;
    L->data = p ;

    for(i=0;i        sprintf(string,"%d",i) ;
        strcpy(L->data[i].id,string) ;
        L->data[i].next = NULL ;
        L->count++ ;
        printf("-%s-",L->data[0].id) ;
        }
}

【注】不能直接在结构体里分配内存,即不能L->data = (base *)malloc(number*sizeof(base))

 

转载于:https://www.cnblogs.com/knightly/p/3520745.html

你可能感兴趣的:(结构体动态数组的定义及操作)