
- C Programming Tutorial
- C - Home
- C - Overview
- C - Environment Setup
- C - Program Structure
- C - Basic Syntax
- C - Data Types
- C - Variables
- C - Constants
- C - Storage Classes
- C - Operators
- C - Decision Making
- C - Loops
- C - Functions
- C - Scope Rules
- C - Arrays
- C - Pointers
- C - Strings
- C - Structures
- C - Unions
- C - Bit Fields
- C - Typedef
- C - Input & Output
- C - File I/O
- C - Preprocessors
- C - Header Files
- C - Type Casting
- C - Error Handling
- C - Recursion
- C - Variable Arguments
- C - Memory Management
- C - Command Line Arguments
- C Programming useful Resources
- C - Questions & Answers
- C - Quick Guide
- C - Useful Resources
- C - Discussion
Flexible Array Members in a structure in C
Flexible Array members in a structure in C means we can declare array without its dimension within a structure and its size will be flexible in nature. Flexible array member must be the last member of class.
Here is an example:
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
" "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; }
Output
Employee_id : 26 Employee Name : Ram Name Length: 3 Employee_id : 53 Employee Name : Madhu Name Length: 5 Size of structure Employee: 12
- Related Articles
- Declaring a structure with no members in C language
- Structure and Members of the C# Program
- Are array members deeply copied in C++?
- Locate unused structures and structure-members
- How to pass individual members of structure as arguments to function in C language?
- Write a C program to display the size and offset of structure members
- Structure and Members of the Java Program
- Difference between Structure and Array in C
- Static Data Members in C++
- Defining static members in C++
- Comparing enum members in C#
- Accessing protected members in a C++ derived class
- Explain the concept of an array within a structure in C programming
- Private and Protected Members in C++
- Array Doubling in Data Structure

Advertisements