Ahli tatasusunan fleksibel dalam struktur C bermakna kita boleh mengisytiharkan tatasusunan tanpa dimensi dalam struktur dan saiznya sememangnya fleksibel. Ahli tatasusunan fleksibel mestilah ahli terakhir kelas.
Berikut ialah contoh:
#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</p><p>" "Employee Name : %s</p><p>" "Name Length: %d</p><p></p><p>", 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</p><p>", 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
Atas ialah kandungan terperinci Dalam bahasa C, ahli tatasusunan berubah dalam struktur. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!