> 백엔드 개발 > C++ > C 언어에서 구조체의 가변 배열 멤버

C 언어에서 구조체의 가변 배열 멤버

WBOY
풀어 주다: 2023-09-14 15:17:09
앞으로
804명이 탐색했습니다.

C 언어에서 구조체의 가변 배열 멤버

C 구조의 유연한 배열 멤버는 구조에서 차원 없이 배열을 선언할 수 있으며 크기가 본질적으로 유연하다는 것을 의미합니다. 유연한 배열 멤버는 클래스의 마지막 멤버여야 합니다.

예는 다음과 같습니다.

Example

#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;
}
로그인 후 복사

Output

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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿