In GNUC++ (seems to be obsolete since 2.5, a long time ago :) See the answers here: C struct initialization using labels. My_data is a struct with name as a field and data[] is arry of structs, you are initializing each index. Read following:. 5.20 Designated Initializers:. In a structure initializer, specify the name of a field to initialize with .fieldname =' before the element value. C++ structs are a value type rather than being a reference type. Use a struct if you don't intend to modify your data after creation. C++ Struct Initialization. To create a C++ structure, we use the struct keyword, followed by an identifier. The identifier becomes the name of the struct.
Initialization When initializing an object of struct or union type, the initializer must be a non-empty, brace-enclosed, comma-separated list of initializers for the members: where the designator is a sequence (whitespace-separated or adjacent) of individual member designators of the form. Member and array designators of the form [ index ]. (It's also worth noting that if you use = {0} to initialise a structure which contains other aggregate types, current versions of GCC will issue a warning such as, file.c: In function `func': file.c:42: warning: missing braces around initializer file.c:42: warning: (near initialization for `s.aggregate')
Next, you learned about the syntax of structures, how to declare and initialize a structure in C, and how to access the elements of a structure in C. Moving ahead, in the Structure in C Programming article you learned other important concepts such as designated initialization of a structure in C, array of structures, and a pointer to a structure. An initializer for a structure is a brace-enclosed comma-separated list of values, and for a union, a brace-enclosed single value. The initializer is preceded by an equal sign (=). C99 and C++ allow the initializer for an automatic member variable of a union or structure type to be a constant or non-constant expression.
If the class has a constructor, provide the elements in the order of the parameters. If a type has a default constructor, either implicitly or explicitly declared, you can use default brace initialization (with empty braces). A Structure is a helpful tool to handle a group of logically related data items. However, C structures have some limitations. The C structure does not allow the struct data type to be treated like built-in data types: We cannot use operators like +,- etc. On Structure variables. In C, we initialize or access a structure variable either through dot.or arrow ->operator. This is the most easiest way to initialize or access a structure.
A ref struct can't be the element type of an array. A ref struct can't be a declared type of a field of a class or a non-ref struct. A ref struct can't implement interfaces. A ref struct can't be boxed to System.ValueType or System.Object. A ref struct can't be a type argument.
Use A Separate Function and Loop to Initialize Array of Structs in C. The downside of the previous method is that array can be initialized with hard-coded values, or the bigger the array needs to be, the bigger the initialization statement will be. Here, we have got on how to declare and initialize struct constructors in C++ programming language. Please notice that we declare struct variables under main, those are not called objects. We have learned to use different ways of using struct constructors, so keep practicing ad enjoy learning.