Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Flexible Array Members ใน structure ใน C


Flexible Array members ใน structure ใน C หมายถึงการประกาศ array โดยไม่ระบุ dimension ภายใน structure และขนาดจะยืดหยุ่นได้ Flexible array member ต้องเป็น last member ของ class

ตัวอย่าง:

ตัวอย่าง

#include #include #include //structure of type employee and must contain at least one more named member in addition to the flexible array member. struct employee {    int emp_id;    int name_len;    int emp_size; //‘emp_size’ variable is used to store the size of flexible    character array emp_name[].    char emp_name[]; //Flexible array member emp_name[] should be the last member of class. }; struct employee *createEmployee(struct employee *e, int id, char a[]) {    e = (struct employee *)malloc( sizeof(*e) + sizeof(char) * strlen(a)); //memory allocation    e->emp_id = id;    e->name_len = strlen(a);    //Assigning size according to size of emp_name which is a copy of user provided    array a[].    strcpy(e->emp_name, a);    return e; } void printEmployee(struct employee *e) //print the details of the employee. {    printf("Employee_id : %d\n" "Employee Name : %s\n" "Name Length: %d\n\n", e->emp_id, e->emp_name, e->name_len); } int main() {    struct employee *e1 = createEmployee(e1, 26, "Ram");    struct employee *e2 = createEmployee(e2, 53, "Madhu");    printEmployee(e1);    printEmployee(e2);    printf("Size of structure Employee: %lu\n",    sizeof(struct employee));    return 0; }

ผลลัพธ์

Employee_id : 26 Employee Name : Ram Name Length: 3 Employee_id : 53 Employee Name : Madhu Name Length: 5 Size of structure Employee: 12