結構中 C 中的可變陣列成員
C 中結構的可變陣列成員意味著我們可以在結構中宣告陣列而無需其維度,並且其大小本質上是可變的。可變陣列成員必須是類的最後一個成員。
以下是一個示例
示例
#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
" "Employee Name : %s
" "Name Length: %d
", 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
",
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP