首頁 > 後端開發 > C++ > 主體

在C語言中,結構體中可變的數組成員

WBOY
發布: 2023-09-14 15:17:09
轉載
800 人瀏覽過

在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</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
登入後複製

以上是在C語言中,結構體中可變的數組成員的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板